我希望能够自动标记页面上的所有复选框,除了第一个复选框。
我找到了一个javascript片段,它选择了当前为此目的而工作的所有复选框,但我不希望它选择第一个复选框...
[].forEach.call(document.querySelectorAll('input[type="checkbox"]'), function (el) {el.checked = true});
我在上面的代码片段中尝试过各种各样的If语句,所有这些都会破坏这个过程。
任何帮助将不胜感激。注意:(我将其作为书签实现。)
答案 0 :(得分:3)
回调函数可以采用index
的第二个参数。因此,请添加index !== 0
的条件,即function (el, index) { if (index !== 0) { el.checked = true; } }
。
甚至是function (el, index) { el.checked = index !== 0; }
答案 1 :(得分:1)
您可以更改查询选择器以添加:not(:first-child)
[].forEach.call(document.querySelectorAll('input[type="checkbox"]:not(:first-child)'), function (el) {el.checked = true});
小提琴:https://jsfiddle.net/zLhhyy7m/2/
或者使用jQuery:
$('input[type="checkbox"]:not(:first)').attr("checked",true);
答案 2 :(得分:0)
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
for (var i = 0; i < checkboxes.length; ++i) {
if (i)
checkboxes[i].checked = true;
}