选择所有复选框在Internet Explorer 9上不起作用

时间:2012-05-20 13:22:24

标签: javascript internet-explorer checkbox

点击全选/取消全选复选框后,我会尝试选中/取消选中所有复选框,如下所示:

onclick="selectAll(document.getElementsByName('myForm:checkboxes'));"

和JS函数:

function selectAll(checkboxes)
        {       
                for(var i in checkboxes)
                checkboxes[i].checked = true;
        }

function deselectAll(checkboxes)
            {       
                    for(var i in checkboxes)
                    checkboxes[i].checked = false;
            }

和HTML:

<input type="checkbox" value="15" name="myForm:checkboxes" id="myForm:checkboxes3:_1">

此代码在firefox中运行良好,但在Internet Explorer 9中它无效。

1 个答案:

答案 0 :(得分:3)

发表评论作为回答:

来自Mozilla开发者网络文档的for..in循环:

  

for ... in循环以任意顺序迭代对象的属性

由于您的checkboxes是一个nodeList而不是一个对象,因此应该使用for循环。

因此,请使用:

,而不是for...in
for (var i=0,len=checkboxes.length;i<len;i++){
    // do stuff
}

参考文献: