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

来源:6-11 编程练习

慕容8154426

2017-09-29 13:21

//方法一:

   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回答

  • 慕圣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的元素


    慕容8154...

    是的,已经理解,非常感谢

    2017-09-29 16:51:41

    共 1 条回复 >

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

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

    写成这样

     case "+":

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

                  break;

    就可以了,顺序错了

    慕容8154...

    非常感谢,一语点破!

    2017-09-29 16:54:37

    共 1 条回复 >

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题