为了账号安全,请及时绑定邮箱和手机立即绑定

计算的结果是NaN 是怎么回事 请人指教

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

    var txt1=document.getElementById("txt1").value;   

    //获取第一个输入框的值

    var txt2=document.getElementById("txt2").value;

//获取第二个输入框的值

    var select1=document.getElementById("select").value;

//获取选择框的值

    var x=""

    switch(select1)

    {

        case "+":

         x = parseInt("txt1")+parseInt("txt2");

        break;

        case "-":

         x = parseInt("txt1")-parseInt("txt2");

        break;

        case "*":

          x = parseInt("txt1")*parseInt("txt2");

        break;

        case "/":

          x = parseInt("txt1")/parseInt("txt2");

        break;

    }

//获取通过下拉框来选择的值来改变加减乘除的运算法则

    document.getElementById("fruit").value = x;

    //设置结果输入框的值 

    

   }

  </script> 

 </head> 

 <body>

   <input type='text' id='txt1' /> 

   <select id='select'>

<option value='+'>+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

   </select>

   <input type='text' id='txt2' /> 

   <input type='button' value=' = ' onclick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果--> 

   <input type='text' id='fruit' />   

 </body>

</html>


正在回答

4 回答

因为txt1已经是String类型的值了,parseInt(txt1),这样写才可以进行转换,下面是改好的代码,你可以看一下


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

<title>Insert title here</title>

</head>

<script type="text/javascript">

function count() {

var txt1 = document.getElementById("txt1").value;

//获取第一个输入框的值

var txt2 = document.getElementById("txt2").value;

//获取第二个输入框的值

var select1 = document.getElementById("select").value;

//获取选择框的值

var x = "";

switch (select1) {

case "+":

x = parseInt(txt1) + parseInt(txt2);

break;

case "-":

x = parseInt(txt1) - parseInt(txt2);

break;

case "*":

x = parseInt(txt1) * parseInt(txt2);

break;

case "/":

x = parseInt(txt1) / parseInt(txt2);

break;

}

//获取通过下拉框来选择的值来改变加减乘除的运算法则

document.getElementById("fruit").value = x;

//设置结果输入框的值 


}

</script>

<body>

<input type='text' id='txt1' />

<select id='select'>

<option value='+'>+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

</select>

<input type='text' id='txt2' />

<input type='button' value=' = ' onclick="count()" />

<!--通过 = 按钮来调用创建的函数,得到结果-->

<input type='text' id='fruit' />

</body>

</html>


1 回复 有任何疑惑可以回复我~
#1

慢慢走0 提问者

非常感谢!
2016-01-11 回复 有任何疑惑可以回复我~

谢谢,同样问题解决了。正确:parseInt(参数),错误:parseInt(“参数”),不用加双引号“”的缘故

0 回复 有任何疑惑可以回复我~

是因为 txt1本身就是字符串  所以不要加""(引号)吗

1 回复 有任何疑惑可以回复我~

正如楼上说的,你这样parseInt("txt1")得到的不是数字,当某个运算符不是数字,那么结果为 NaN。

0 回复 有任何疑惑可以回复我~
#1

慢慢走0 提问者

谢谢!!!
2016-01-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

计算的结果是NaN 是怎么回事 请人指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信