选择HTML中的所有复选框

mou*_*iec 2 html javascript

HI,

我有一个HTML,其中有几个带有复选框的项目列表(这些项目放在一个表格中).表中的每一行都有以下颜色:

<input type='checkbox' name='Events[]' value='1'>
<input type='checkbox' name='Events[]' value='2'>
etc
Run Code Online (Sandbox Code Playgroud)

我想创建一个链接名称"全选",点击后将选择所有项目.

我使用以下JS,但它无法正常工作.

    function SelectAll(form)
    {
        for(var i in form.Events.childNodes)
            if(form.Events.childNodes[i].type == "checkbox")
                form.Events.childNodes[i].checked = true;
    }
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 5

name您输入的是Events[],这样form.Events就不会找到它

由于方括号不适合JavaScript o.p属性访问快捷方式,因此您必须使用显式的基于字符串的表示法来获取它们:

var inputs= form.elements['Events[]'];
Run Code Online (Sandbox Code Playgroud)

form.elements集合(和形式收集itself- form['Events[]']哪位是一个非标准化的快捷方式,同样的事情,但名称冲突的更多的机会)是有点老派,并有一些缺点,就像当有一个列表,而不是返回单个元素只有一个元素.你可能最好使用getElementsByName:

var inputs= form.getElementsByName('Events[]');
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,跟进:

for (var i= inputs.length; i-->0;)
    inputs.checked= true;
Run Code Online (Sandbox Code Playgroud)

永远不要使用for...in迭代数组或类似数组的序列.它完全不符合你的想法.坚持老派索引循环.