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

为什么这种方法实现不了,还请解答,谢谢

//方法一:

   function count(){

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

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

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

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

       switch(selecting){

           case "+":

              c.setAttribute("value",parseInt(a)+parseInt(b));

              break;

           case "-":

               c.setAttribute("value",parseInt(a)-parseInt(b));

               break;

           case "*":

               c.setAttribute("value",parseInt(a)*parseInt(b));

               break;

           case "/":

               c.setAttribute("value",parseInt(a)/parseInt(b));

               break;

      }

   }

为什么这种方法实现不了,还请解答,谢谢

正在回答

2 回答

 

setAttribute的语法是element.setAttribute(attributename,attributevalue)

你定义c为 var =document.getElementById("fruit").value;

但是 加上  .value  后c指向的就不是Element(元素),不能进行后面的c.setAttribute("value",parseInt(a)+parseInt(b));

所以得定义为var c=document.getElementById("fruit");让c指向id为fruit的元素


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

慕容8154426 提问者

是的,已经理解,非常感谢
2017-09-29 回复 有任何疑惑可以回复我~

 var c=document.getElementById("fruit").value;这个取到的是空值,不能先取,

写成这样

 case "+":

              document.getElementById("fruit").setAttribute("value",parseInt(a)+parseInt(b));

              break;

就可以了,顺序错了

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

慕容8154426 提问者

非常感谢,一语点破!
2017-09-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这种方法实现不了,还请解答,谢谢

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