如何清除所有复选框当复选框id =“checkAll”被选中时?

如何清除所有复选框当复选框id="checkAll"被选中时?

在我的演示中,当用户选中复选框id="checkAll" ,选中所有复选框

但我想申请,当用户选中复选框id="checkAll"所有复选框都清除,我该怎么办?

http://jsfiddle.net/peap/sydzL8Lc/1/

 $('#checkAll').click(function () { $('input:checkbox').prop('checked', this.checked); }); 

只需应用this.checked的否定

 $('#checkAll').change(function () { $('input:checkbox').not(this).prop('checked', !this.checked); }); 

演示

如果我理解正确,您希望在单击“全部检查”时清除所有项目 – 为清晰起见,您可能希望将名称更改为“全部清除”。

如果是这样,只需添加一个简单的! 在这之前。检查

$(’#checkAll’)。click(function(){
$(’input:checkbox’)。prop(’checked’,! this.checked); });

您不应对多个元素使用相同的ID,因为ID是唯一的。 而是使用class="checkedItem"

如果你想清除所有使用

 $('#checkAll').click(function () { $('input:checkbox').prop('checked', !this.checked); }); 

但是,这也会清除第一个复选框。 为了防止这种使用

 $('#checkAll').click(function () { $('input:checkbox').not(this).prop('checked', !this.checked); }); 

你可以使用change()函数,你可以在change事件中使用this.checked进行检查,它将返回复选框检查状态的boolean值:

检查主要检查全部:

 $('#checkAll').change(function () { $('input:checkbox').prop('checked', this.checked); // all checked on check of #checkAll }); 

取消选中主要选中的全部:

 $('#checkAll').change(function () { $('input:checkbox').prop('checked', !this.checked); // all unchecked on check of #checkAll }); 

如果你想要所有未选中但没有主复选框,那么:

取消选中所有不包括主要内容:

 $('#checkAll').change(function () { $('input:checkbox').not(this).prop('checked', !this.checked); // all unchecked on check of #checkAll but not itself });