问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

有关任务一的问题

为什么任务一中, if(hobby[p].type="checkbox"),运行后就把全部的其他的选上了(不止那6个),而如果改为 if(hobby[p].name="hobby"),则正确,这个是什么回事,为什么if(hobby[p].type="checkbox"),不行。。。。。。。求解

提问者:superli18 2015-08-23 15:31

个回答

  • 学C的孩孩纸
    2015-08-24 14:54:39
    已采纳

    if里判断是否相等用的是==,而=是赋值的意思。应该为if(hobby[p].type=="checkbox")

  • 学C的孩孩纸
    2015-08-25 10:30:28

     if(hobby[p].type="checkbox"){            

          hobby[p].checked=true;

          alert(p+":"hobby[p].type);

      }你可以自己看一下,if里用等于号把所有input的type的属性值变成了checkbox,然后你戴拿里令checked=true,这样全部的type的属性值checkbox都成了true,所以全选就都变陈了对号

     if(hobby[p].name="hobby"){            

          hobby[p].checked=true;

          alert(p+":"hobby[p].name);

      }运行一下你自己看看alert的结果,这样也是所有input的name属性值都变成了hobby,但是因为你代码里写的是令checked=true,只有前六个input里有checkbox这个属性,后四个input没有这个属性,所以没有改变。。。。。。这样解释可以了吧。。。。。if是条件判断的语句,以后不要在放赋值符号进去了,亲。