我是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);
}
});
非常感谢您的帮助, 麦克
答案 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);