我有4个checkbox 有一个的功能是选中那么其他的就都选中
我的代码
var selectedboxes = document.getElementsByName("selectFlag");
var i;
for(i in selectedboxes){
selectedboxes[i].checked = true;
}
为啥子用for in循环就不行喃改成这样:
var selectedboxes = document.getElementsByName("selectFlag");
for(var i = 0;i < selectedboxes.length;i++){
selectedboxes[i].checked = true;
}
为啥子就可以了
求大神详细解释,本人新手
我的代码
var selectedboxes = document.getElementsByName("selectFlag");
var i;
for(i in selectedboxes){
selectedboxes[i].checked = true;
}
为啥子用for in循环就不行喃改成这样:
var selectedboxes = document.getElementsByName("selectFlag");
for(var i = 0;i < selectedboxes.length;i++){
selectedboxes[i].checked = true;
}
为啥子就可以了
求大神详细解释,本人新手
其实访问的是对象的属性,而不是你认为的数组的元素
for in DOM数组在chrome和FF中是可以的。楼主的for in遍历,在火狐和chrome中是有效的,ie下无效。主要是因为IE对dom数组的处理和其他浏览器不一样在FF中,selectedboxed这个dom集合为:
在IE9中,selectedboxed为:然而在IE9中,selectedboxed[0]又是有效的,FF和IE9中的selectedboxed都是有length属性的。这不禁让我想起function的arguments属性,也是个像数组却又不是数组的奇葩......希望有人对dom集合和arguments做出更为有说服力的解释。