为什么我加运算的时候结果不对呢?其他运算都对

来源:6-11 编程练习

weixin_慕莱坞515421

2019-05-04 17:16

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

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

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

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

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

//获取选择框的值

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

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

switch(cal){

    case '+':

        var rst=x+y;break;

    case '-':

        rst=x-y;break;

    case '*':

        rst=x*y;break;

    default:

        rst=x/y;break;

}

    //设置结果输入框的值 

    document.getElementById("fruit").value=

   }

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

比如输入3+5的话结果会变成35 而不是8

其他运算结果都对

我试了用parseInt函数处理x和y但还是这样,不知道是怎么回事??

写回答 关注

2回答

  • 南风2019
    2019-05-06 13:55:23
    var x=document.getElementById("txt1").value;

    这样获取的都是字符串类型,直接用+的话相当于拼接字符串,所以这里应该先用parseInt(x)转换为数值类型再进行相加。至于其他的都对,应该是隐式转换了。

  • 不学前端的司机不是好厨子
    2019-05-05 08:53:51

    文本输入框的值默认是字符串,要用parseInt转化成数值

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

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

    只有+是35其他却正常,那是因为字符串之间连接也是用+

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题