Javascript选择除页面上的第一个复选框以外的所有复选框?

时间:2015-07-30 15:58:49

标签: javascript checkbox

我希望能够自动标记页面上的所有复选框,除了第一个复选框。

我找到了一个javascript片段,它选择了当前为此目的而工作的所有复选框,但我不希望它选择第一个复选框...

[].forEach.call(document.querySelectorAll('input[type="checkbox"]'), function (el) {el.checked = true});

我在上面的代码片段中尝试过各种各样的If语句,所有这些都会破坏这个过程。

任何帮助将不胜感激。注意:(我将其作为书签实现。)

3 个答案:

答案 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);

小提琴:https://jsfiddle.net/zLhhyy7m/1/

答案 2 :(得分:0)

var checkboxes = document.querySelectorAll('input[type="checkbox"]');
for (var i = 0; i < checkboxes.length; ++i) {
    if (i)
        checkboxes[i].checked = true;
}