你好,
我有一个 HTML,其中有几个带有复选框的项目列表(这些都放在一个表中)。表格中的每一行都有以下列:
<input type='checkbox' name='Events[]' value='1'>
<input type='checkbox' name='Events[]' value='2'>
etc
我想制作一个链接名称“全选”,单击时将选择所有项目。
我正在使用以下 JS,但它不起作用。
function SelectAll(form)
{
for(var i in form.Events.childNodes)
if(form.Events.childNodes[i].type == "checkbox")
form.Events.childNodes[i].checked = true;
}
最佳答案
您输入的 name
是 Events[]
,所以 form.Events
找不到它
因为方括号不适合 JavaScript o.p
属性访问快捷方式,您必须使用基于字符串的显式表示法来获取它们:
var inputs= form.elements['Events[]'];
form.elements
集合(以及表单集合本身——form['Events[]']
——它是同一事物的非标准化快捷方式,但名称冲突的可能性更大)有点老派并且有一些缺点,例如当只有一个元素时返回单个元素而不是列表。您最好使用 getElementsByName
:
var inputs= form.getElementsByName('Events[]');
无论哪种方式,跟进:
for (var i= inputs.length; i-->0;)
inputs.checked= true;
切勿使用 for...in
来迭代数组或类似数组的序列。它根本不会按照你的想法去做。坚持老式的索引循环。
关于javascript - 选择 HTML 中的所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959504/