jQuery: 选中/取消选中具有特定 class 的所有兄弟姐妹

jQuery: Check / uncheck all siblings with certain class

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

我正在尝试设置一个"All"复选框来选中/取消选中它的所有同级复选框(即那些在同一个div/父级下的复选框) - 但前提是他们没有特定的 class ("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);
    }
});

非常感谢您的帮助, 麦克

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

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

:not.

中不需要 jQuery Selector
$('.checkAll').on('click', function() {
    $(this).siblings(":not('.other')").prop('checked', $(this).is(':checked'));
});

$(this).is(':checked') returns true/false 您已使用 if 检查并将其分配给 checked.

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

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