1

次のように、すべてを選択/すべてのチェックボックスを選択解除をクリックすると、すべてのチェックボックスをオン/オフにしようとしています:

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 では動作しません。

4

1 に答える 1

3

コメントを回答として投稿:

for..inMozilla Developer Network のドキュメントからのループ:

for...in ループは、オブジェクトのプロパティを任意の順序で反復します

あなたcheckboxesはオブジェクトではなくnodeListであるため、for代わりにループを使用する必要があります。

したがって、代わりにfor...in次を使用します。

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

参考文献:

于 2012-05-20T13:43:27.897 に答える