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

我这个代码,为什么加法运算不是2数相加?找不到哪里写错了?

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

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

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

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

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

var p="";

    //获取选择框的值

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

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

    //设置结果输入框的值 

   switch(px)

   {

       case "+":

           p = p1 +p2;

           break;

       case "-":

           p = p1 -p2;

            break;

       case "*":

           p = p1*p2;

            break;

       case "/":

           p = p1/p2;

            break;

   }

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

   

   }

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

   <input type='text' id='fruit' onclick="count()" />   

 </body>

</html>


提问者:请叫我_灰灰 2016-02-01 22:19

个回答

  • 断了的弦外之音
    2016-02-01 22:55:28
    已采纳

    你的p1和p2接收到的是String类型的值 你用alert(typeof(p1))试一下就知道了   要用parseInt转型

  • 请叫我_灰灰
    2016-02-02 09:31:52

    我还有点不明白,为什么就是第一个case是字符串,其他的case就是number类型呢?

    在case“-”后面加了alert(typeof(p)); 是弹出number类型的 
    但是为什么会这样?

  • 请叫我_灰灰
    2016-02-02 09:31:46

    我还有点不明白,为什么就是第一个case是字符串,其他的case就是number类型呢?

    在case“-”后面加了alert(typeof(p)); 是弹出number类型的 
    但是为什么会这样?