if里判断是否相等用的是==,而=是赋值的意思。应该为if(hobby[p].type=="checkbox")
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是条件判断的语句,以后不要在放赋值符号进去了,亲。