为什么输出Nan

来源:6-11 编程练习

滢芷

2016-11-08 21:00

<!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回答

  • 慕粉5830429
    2016-11-08 21:29:07
    已采纳

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

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

    SparkP...

    没有获得value的值,没有进行字符串和整型的之间的转化

    2016-11-08 21:40:14

    共 1 条回复 >

  • A空城
    2016-11-09 15:16:04

    <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>


  • stone310
    2016-11-09 09:11:01

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

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

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

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


  • 滢芷
    2016-11-08 22:14:49


    <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?


    A空城

    #t1是输入值1,#t2是输入值2,那用来显示结果的标签元素呢? 不给标签元素也可以 但你要以弹窗的方式弹出结果呀

    2016-11-09 15:05:58

    共 1 条回复 >

  • 慕粉4316970
    2016-11-08 22:01:33

    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;)

    试试?

    滢芷

    还是不行

    2016-11-08 22:12:10

    共 1 条回复 >

  • 滢芷
    2016-11-08 21:35:35
    <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

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题