为什么我的加法只是单纯地把数字拼在一起而不是数值相加

来源:6-11 编程练习

石榴笑了

2018-08-14 13:11

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

       

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

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

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

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

//获取选择框的值

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

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

var result;

switch(op){

    case "+":

    result=num1+num2;

    break;

    case "-":

    result=num1-num2;

    break;

    case "*":

    result=num1*num2;

    break;

    case "/":

    result=num1/num2;

    break;

}

    //设置结果输入框的值 

    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>


写回答 关注

3回答

  • 慕婉清9133960
    2018-08-14 13:16:25
    已采纳

    文本框获取的是字符串格式,你把它转换成数值就好了

    num1 = parseInt(num1);

    parseInt函数在课程里面有提到

    石榴笑了

    为什么换成其他运算符号的时候没有出错呢?

    2018-08-14 13:19:40

    共 1 条回复 >

  • 慕数据5594171
    2018-08-18 19:03:41

    因为仅有+在JS还有连接符的意思,-*/都没有。当你得到第一个框的值的时候,这时它是一个字符串,字符串+字符串,JS就把他们拼接了。而-*/,JS发现字符串做不了这个东西啊,就自动把他们转成数字,然后再进行运算。我编完了

    慕数据559... 回复石榴笑了

    客气了客气了。 啊哈!你也是广州的学生吗!实属小巧,我也是

    2018-08-20 09:24:25

    共 5 条回复 >

  • qq_dfg
    2018-08-14 14:28:12

    我直接是蒙的


    石榴笑了

    吼吼阔以参考一下楼上同学建议~

    2018-08-19 09:43:57

    共 1 条回复 >

JavaScript进阶篇

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

468746 学习 · 22132 问题

查看课程

相似问题