Document.getElementByName用于数组

时间:2015-02-04 18:21:41

标签: javascript arrays

我想在javascript中创建一个循环元素, 我的HTML是:

<input type="checkbox" name="menu[]" value="0">
<input type="checkbox" name="menu[]" value="1">
<input type="checkbox" name="menu[]" value="2">

和javascript是

window.onload = function() {
    var x = document.getElementsByName("menu");
    for (i = 0; i < x.length; i++) {
        if (x[i].type == "checkbox") {
            x[i].checked = true;
        }
    }

}

但没有检测到任何元素!!!! 尝试alert(x.length),你看到了0 !!

1 个答案:

答案 0 :(得分:3)

元素名称为menu[],就像它在HTML源代码中所说的那样。

window.onload = function() {
    var x = document.getElementsByName("menu[]"), i;
    for (i = 0; i < x.length; i++) {
        if (x[i].type == "checkbox") {
            x[i].checked = true;
        }
    }
}
<input type="checkbox" name="menu[]" value="0">
<input type="checkbox" name="menu[]" value="1">
<input type="checkbox" name="menu[]" value="2">
<p>All checkboxes named <b>menu[]</b> have been checked.</p>

HTML不关心方括号。它们没有任何意义,它们就像字母一样。

事实上,例如,PHP特别对待它们并不是HTML所关注的。

P.S。不要忘记声明循环计数器i,否则它将是全局的,并且您不需要全局循环计数器。