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

为什么输出Nan

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

  

       

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

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

    a=a-0;

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

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

    b=b-0;

//获取选择框的值

    var o=document.getElementById("select")

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

    function david(a,b){

        if(o=='+'){

            var n=a+b;

        }else if(o=='-'){

            var n=a-b;

        }else if(o=='*'){

            var n=a*b;

        }else if(o=='/'){

            var n=a/b;

        }

    

    

    //设置结果输入框的值 

    n=n-0;

    document.getElementById('fruit').value=n;

    }

   

  </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='david()'/> <!--通过 = 按钮来调用创建的函数,得到结果--> 

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

 </body>

</html>


正在回答

6 回答

var o=document.getElementById("select") 这一行等到的值是object,  应该写成.

var o=document.getElementById("select").value 这样得到的值才是实际的值.

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

SparkParis

没有获得value的值,没有进行字符串和整型的之间的转化
2016-11-08 回复 有任何疑惑可以回复我~

<html>

 <head>

 

 <script type='text/javascript'>

  function count(){

var a=t1.value;  

  var b=t2.value;

var sele=se.value;

var n;

switch(sele){

case '+':

n=eval(a)+eval(b);

break;

case '-':

n=eval(a-b);

break;

case '*':

n=eval(a*b);

break;

case '/':

n=eval(a/b);

}

alert(n);

  } 

  </script>

  

 </head>

 

 

 

 <body>

 

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

  <select id='se'>

  <option>+</option>

  <option>-</option>

  <option>*</option>

  <option>/</option>

    </select>

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

    <button type='button' onclick='count()'>result</button>

 </body>

</html>


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

  var a=parseInt(document.getElementById("t1").value);

  var b=document.getElementById('t2').value;

要放到count()函数内,放在外面就是页面加载的时候获取,当然是undefined,放在函数内,则点击后再获取;

b也要加上parseInt(),数字相加才不会出问题


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


<html>

 <head>

 

 <script type='text/javascript'>

 //

  var a=parseInt(document.getElementById("t1").value);

  var b=document.getElementById('t2').value;


  function count(a,b){

  //var n=a+b;

  document.write(a);

  document.write(b);

  }

 

  </script>

  

 </head>

 

 

 

 <body>

 

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

  <select id='se'>

  <option>add</option>

  <option>minus</option>

  <option>mutiply</option>

  <option>divide</option>

    </select>

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

    <button type='button' onclick='count()'>result</button>

 </body>

</html>


这个里面输出结果是两个undefined,所以会出现nan,但是为什么undefined?


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

A空城

#t1是输入值1,#t2是输入值2,那用来显示结果的标签元素呢? 不给标签元素也可以 但你要以弹窗的方式弹出结果呀
2016-11-09 回复 有任何疑惑可以回复我~

var a=document.getElemntById('t1').value;

   var b=document.getElemntById('t2').value;

 改为

var a= parseInt(document.getElemntById('t1').value;)

   var b=parseInt(document.getElemntById('t2').value;)

试试?

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

滢芷 提问者

还是不行
2016-11-08 回复 有任何疑惑可以回复我~
<html>
 <head>
 
 <script type='text/javascript'>
 //
 	var a=document.getElemntById('t1').value;
 	var b=document.getElemntById('t2').value;

 	function count(a,b){
 		var n=a+b;
 		document.write(n);
 	}
 	
 	</script>
  
 </head>
 
 
 
 <body>
 	
 	<input type='text' id='t1'/>
 	<select id='se'>
 		<option>add</option>
 		<option>minus</option>
 		<option>mutiply</option>
 		<option>divide</option>
    </select>
    <input type='text' id='t2'/>
    <button type='button' onclick='count()'>result</button>
 </body>
</html>

这样也是nan

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

举报

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

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

进入课程

为什么输出Nan

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