问答详情
源自:6-11 编程练习

请问一下为什么不管我选择哪个运算符,总是按照/这个来运算呢

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

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

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

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

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

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

    var result="";

    switch(sel){

        case "+":

            result=parseFloat(x1) + parseFloat(x2);

            break;

        case "-":

            result=parseFloat(x1) - parseFloat(x2);

            break;

        case "*":

            result=parseFloat(x1) * parseFloat(x2);

            break;

        case "/":

            result=parseFloat(x1) / parseFloat(x2);

    }

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

            

    }

//获取选择框的值

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

    //设置结果输入框的值 

    

   }

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


提问者:xiaodanxu 2016-03-12 13:25

个回答

  • expressqingqing
    2016-04-11 11:20:58

    (1)switch语句有问题,case语句的值如果是字符必须用’‘,你用的是“”(2)当switch后的表达式的值和case语句后的值相同时,从该位置向下执行,直到遇到break语句或者switch语句结束块。你的每个case语句后都没有break语句,即使你的select选的+号,程序也会依次执行+ -  *  /  后才结束程序,所以最后结果都是两数相除的结果。

  • zxcvbnm456
    2016-03-12 15:09:51

    语法错误

  • 范紫敏
    2016-03-12 14:57:06

    多了一个}这个,存在错误,去掉就行哈

  • 雨季_46745
    2016-03-12 14:41:16

    多打了个 } ,去掉就好了。