用于选择在IE8中不起作用的复选框的Javascript代码

用于选择在IE8中不起作用的复选框的Javascript代码,javascript,Javascript,我有以下代码来切换选择具有特定名称的所有复选框 该代码在基于webkit的浏览器中运行良好,但在IE8中根本不起作用 选择“全部切换”,不选择任何内容 <label class="checkbox"> <input name="product" type="checkbox" id="7553" value="true" title="option1"> option1 </label> <label class="checkbox"> &l

我有以下代码来切换选择具有特定名称的所有复选框

该代码在基于webkit的浏览器中运行良好,但在IE8中根本不起作用

选择“全部切换”,不选择任何内容

<label class="checkbox">

<input name="product" type="checkbox" id="7553" value="true" title="option1">
option1
</label>

<label class="checkbox">

<input name="product" type="checkbox" id="65693" value="true" title="option2">
option2
</label>

<label class="checkbox">
<input type="checkbox" onClick="toggle(this)"><strong>Select all</strong>
</label>

选择1
选择2
全选
这是JS

<script type="text/javascript">
function toggle(source) {
checkboxes = document.getElementsByName('product');
for(var i in checkboxes)
checkboxes[i].checked = source.checked;
}
</script>

函数切换(源){
复选框=document.getElementsByName(“产品”);
用于(复选框中的var i)
复选框[i]。选中=源。选中;
}
有人能理解为什么上面这些在IE8中不起作用吗


感谢

可能是因为您不应该在数组(或者在本例中是类似数组的对象)上使用for..in

试试这个:

for( var i=0, l=checkboxes.length; i<l; i++) {
    checkboxes[i].checked = source.checked;
}

用于(var i=0,l=checkboxes.length;i
for..in
用法不全是坏的,请看以下答案:非常好,是的。使用普通循环修复了这一问题。这似乎是一个常见错误。我在帖子中可能太仓促了。我稍微更改了一下,因为我需要它对ID而不是名称进行操作。问题是,尽管我设置了cor,但它现在似乎不起作用但是rect id.ClassName起作用了,所以一切都很好。干杯,伙计们。