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

这样为什么不行呢 var fruited=parseInt(document.getElementById('fruit').value);

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count()

   {   

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

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

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

 var fruited=parseInt(document.getElementById('fruit').value);

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

    {

      case "+":

        fruited=num1+num2;

      case "-";

        fruited=mum1-num2;

      case "*";

        fruited=mum1*num2;

      case "/";

        fruited=mum1/num2; 

    }

    //设置结果输入框的值 

    

   }

  </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' onfocus="count()" />   

 </body>

</html>


正在回答

3 回答

问题一

  switch(counting){

      case "+":

        fruited=num1+num2;

      case "-";

        fruited=mum1-num2;

      case "*";

        fruited=mum1*num2;

      case "/";

        fruited=mum1/num2; 

   }

上面一段代码中你存在3个错误:

   (1)case后面为“”,你后面三个写的都是“”。

   (2)case后面都需要加break;不然代码会按照顺序全部执行一遍。这样switch就没有意义了。

   (3)num1你后面三个都写成了mum1;注意n和m。

以上三个错误都算是粗心。下次认真点就好了~

问题二为什么结果框里数字没有变化?

var fruited=parseInt(document.getElementById('fruit').value);

你要改变fruit的属性值value,需要获得的是fruit这个对象,然后再对他的value进行附值。大致如下:

var fruited=document.getElementById('fruit');

switch(counting){

      case "+":

       fruited.value=num1+num2;

       break;

      .........

   }


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

噜啦咧 提问者

还有一点不明白为什么上面的 var num1=parseInt(document.getElementById('txt1').value);可以这样写 到了结果这里要var fruited=document.getElementById('fruit');要分开写
2016-03-24 回复 有任何疑惑可以回复我~
#2

蝎子126 回复 噜啦咧 提问者

回复框字数限制,请看下面的评论~
2016-03-25 回复 有任何疑惑可以回复我~

回复 噜啦咧:

我们分析一下整个运算过程:

(1)获取txt1和txt2输入框的值。进行运算。

(2)给fruit输入框附值。

看的出来,对txt1和fruit两个输入框的操作是不一样的。一个获取值,一个附值。

(1)获取值代码 var x=object.value,也就是num1这样。

    var num1=parseInt(document.getElementById('txt1').value);

(2)附值代码 object.value=y,所以要先获得fruit这个对象,然后再对它的value附值。也就是fruited这样。

     var fruited=document.getElementById('fruit');  fruited.value=result;

   注意:var z=object.value;

                z=y;

   这样只是z被再次附值,跟object.value并没有关系。这里跟数学里的连等是不一样的。所以object.value ≠y;

 这样说清楚吗???


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

噜啦咧 提问者

非常清楚,太感谢了
2016-10-17 回复 有任何疑惑可以回复我~

object.value:获取对象的值

你现在的步骤:

1、需要先获取到对象,var fruited = document.getElementById('fruit');

2、计算完以后再对对象的value属性进行赋值。fruited .value = XX;

document.getElementById('fruit').value:只是获取到对象的值,空的话获取到的是undefind。

或者你可以再最后面写:

document.getElementById('fruit').value = XX;

其他错误楼上已指正!

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

举报

0/150
提交
取消

这样为什么不行呢 var fruited=parseInt(document.getElementById('fruit').value);

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