jQuery:检查/取消选中某些类的兄弟姐妹

时间:2015-05-28 12:17:43

标签: jquery checkbox jquery-selectors checked siblings

我是jQuery的新手,希望有人可以帮我解决这个问题。

我正在尝试设置一个“全部”复选框来检查/取消选中所有兄弟复选框(即同一个div / parent下的复选框) - 但前提是它们没有某个类("other")。

我的方法是减少运行时间,并以一种可以应用于其他div中的类似结构的方式编写它。

我的代码在没有:not()选择器的情况下工作,但是当我包含它时,我无法使它工作。 此外,我不确定我的方法是否是最佳/最快的方法。

我的jQuery:

$('.checkAll').click(function(){
    if($(this).is(':checked')){
        $(this).siblings(":not($('.other'))").prop('checked', true);
    }else{
        $(this).siblings(":not($('.other'))").prop('checked', false);
    }
});

非常感谢您的帮助, 麦克

3 个答案:

答案 0 :(得分:2)

$内您不需要:not。您可以优化使用this.checked的代码并避免使用if语句。

$('.checkAll').click(function(){
      $(this).siblings(":not('.other')").prop('checked', this.checked);
});

答案 1 :(得分:2)

jQuery Selector内不需要:not

$('.checkAll').on('click', function() {
    $(this).siblings(":not('.other')").prop('checked', $(this).is(':checked'));
});

$(this).is(':checked')返回您使用true/false检查过的if,并将其分配给checked

答案 2 :(得分:0)

在非选择器中删除jquery对象,可以使用字符串

 $(this).siblings(":not('.other')").prop('checked', true);