这不是问题,我只是要求最简单的方法来实现它。
我有什么。
在HTML中:复选框列表。
<input type="checkbox" value="1" />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" />
<input type="checkbox" value="4" />
在JavaScript中 - 包含多个值的数组:var aValues = [1, 3];
我需要使用aValues
中指定的值从DOM中获取所有复选框。
我是怎么做到的:
var aoNodes = document.querySelectorAll('input[value="1"], input[value="3"]');
但也许有人知道更简单(更短)的方式来构建查询,例如:input[value="1"|"3"]
或input[value="1", "3"]
。
上面的两个例子都不正确,但我只是为了让你更清楚。
更新
更多事情要澄清我的问题:
答案 0 :(得分:1)
怎么样......
var checkboxes = form.querySelectorAll( 'input[type="checkbox"]' );
checkboxes = [].filter.call( checkboxes, function ( checkbox ) {
return aValues.indexOf( +checkbox.value ) > -1;
});
其中form
是包含所有复选框的元素。 (您不希望不必要地进行文档级查询。)
请注意,这会使用Array.filter()
,may not be available in all browsers。
答案 1 :(得分:0)
var boxes = [].slice.call(form.elements).filter(function ( element ) {
return element.type === 'checkbox' && [1,3].indexOf(+element.value) > -1;
});
使用form.elements
获取表单的输入。然后按类型和值进行过滤。