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

为什么没有反应呢?

function count(){
    var one = document.getElementById("txt1").value;//获取第一个输入框的值
    var two= document.getElementById("txt2").value;    //获取第二个输入框的值
    var three = document.getElementById("select").value;    //获取选择框的值
    var four= "";
    switch(three) {
        case "+":
            four = parseInt(one) + parseInt(two);
            break;
        case "-":
            four= parseInt(one) - parseInt(two);
            break;
        case "*":
            four= parseInt(one) * parseInt(two);
            break;
        case "/"
            four = parseInt(one) / parseInt(two);
        default
        undefined//获取通过下拉框来选择的值来改变加减乘除的运算法则
    }
    document.getElementById("fruit").value = four;//设置结果输入框的值 
    
   }   
   }
  </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' />

为什么没有反应啊

正在回答

2 回答

function count(){

    var one = document.getElementById("txt1").value;//获取第一个输入框的值

    var two= document.getElementById("txt2").value;    //获取第二个输入框的值

    var three = document.getElementById("select").value;    //获取选择框的值

    var four= "";

    switch(three) {

        case "+":

            four=parseInt(one)+parseInt(two);

            break;

        case "-":

            four=parseInt(one)-parseInt(two);

            break;

        case "*":

            four=parseInt(one)*parseInt(two);

            break;

        case "/":      //导致运行没有效果的错误之一:这里没写冒号!

            four=parseInt(one)/parseInt(two);

break;

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

   default:           //导致运行没有效果的错误之二:这里没写冒号!

        undefined;      //规范这里要写分号,不写不影响效果。

    }

    document.getElementById("fruit").value = four;//设置结果输入框的值 

     

   }   

 //导致运行没有效果的错误之三:这里多出了一个大括号!

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

最近的距离是多少3456060 提问者

非常感谢!
2016-08-08 回复 有任何疑惑可以回复我~
#2

最近的距离是多少3456060 提问者

为什么1+1的输出是11而不是2呢?其他运算都是正确的...
2016-08-08 回复 有任何疑惑可以回复我~
#3

teresahy3144593 回复 最近的距离是多少3456060 提问者

1.连接字符串;2.作为算术运算符进行四则运算。var num1=document.getElementById("txt1").value;取到的值是字符串类型,所以你不进行类型转换(用parseInt()),它起的作用是连接字符串。
2016-08-08 回复 有任何疑惑可以回复我~
#4

最近的距离是多少3456060 提问者 回复 teresahy3144593

case "+": four = parseInt(one) + parseInt(two); break; 不是已经加了吗?
2016-08-09 回复 有任何疑惑可以回复我~
查看1条回复
  1. 你一开始不要给four赋空值,而且你那样定义,four是字符串类型;

  2. switch语句里,default直接可以是”/“,即一共就四则运算四个判断;

  3. 你可以在一开始取值的时候进行类型转换,而不是在switch语句中进行计算时才转换。

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

最近的距离是多少3456060 提问者

谢谢。你这3个意见可以少了很多代码...
2016-08-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468188    人
  • 解答问题       21891    个

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

进入课程

为什么没有反应呢?

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