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)
在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迭代数组或类似数组的序列.它完全不符合你的想法.坚持老派索引循环.
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |