问答详情
源自:6-11 编程练习

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

//方法一:

   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;

      }

   }

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

提问者:慕容8154426 2017-09-29 13:21

个回答

  • 慕圣5239304
    2017-09-29 15:38:41
    已采纳

     

    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的元素


  • 慕移动7645197
    2017-09-29 15:10:25

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

    写成这样

     case "+":

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

                  break;

    就可以了,顺序错了