如何清除所有复选框当复选框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 });