如何将.each与.not()结合起来

时间:2016-02-13 23:45:46

标签: javascript jquery html

我有一些复选框,我试图制作一个反转功能,但我想影响除第一个复选框以外的所有功能,所以我使用jQuery并经过研究后我明白我应该使用.not (':第一个'),但我不知道将它放在我已编写的代码中的哪个位置。

function invert(){
$('input[type="checkbox"]').each(function () {
$(this).prop('checked', !$(this).is(':checked'));
});}

请帮帮我吗?

2 个答案:

答案 0 :(得分:4)

有几种方法可以做到,包括但不限于以下几种方法。

全部在选择器中:

$('input[type="checkbox"]:not(:first)').each(...)

使用.not() method

$('input[type="checkbox"]').not(':first').each(...)

使用.slice() method

$('input[type="checkbox"]').slice(1).each(...)

请注意,实际检查/取消选中框的行可以简化为:

this.checked = !this.checked;

但是如果你在循环中做的唯一事情就是更改checked属性然后你不需要.each(),你可以改为pass a function to prop()

$('input[type="checkbox"]:not(:first)').prop("checked", function(i, val) {
    return !val;
});

答案 1 :(得分:1)

尝试使用:gt()选择器和参数0来选择索引大于0的元素:首先

$("input[type=checkbox]:gt(0)").each(function() {
  // do stuff with `input` elements having index greater than `0`
})