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

减乘除都没问题,为什么加法有问题?1+1=11????对了还有乱码

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

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

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

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

    if(c=="+"){

    d=a+b;

    }else if(c=="-"){

    d=a-b;

    }else if(c=="*"){

    d=a*b;

    }else{

    d=a/b;

    }

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

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

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

//获取选择框的值

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

    //设置结果输入框的值 

https://img1.sycdn.imooc.com//5b1605a600018d5110400183.jpg   }

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

取得的值是字符串,所以按照字符串的运算是字符串相连。可以使用parseInt()将字符串转换成数值。

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

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


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

稽小寞 提问者

非常感谢!
2018-06-05 回复 有任何疑惑可以回复我~

你在input中输入的内容属于字符串类型。你可以这样来测试,在你原来的JS代码中加入console.log(typeof a)就能得到你写入的内容属性是string。既然是string, 那么+号就把它们连接起来,而不是相加取和。

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

稽小寞 提问者

非常感谢!
2018-06-15 回复 有任何疑惑可以回复我~

不行啊

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

举报

0/150
提交
取消

减乘除都没问题,为什么加法有问题?1+1=11????对了还有乱码

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