如何清除所有复选框当复选框=“检查全部”复选框?

时间:2014-09-12 16:25:22

标签: javascript jquery html checkbox

如何清除所有复选框选中复选框id="checkAll"

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

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

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

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

4 个答案:

答案 0 :(得分:1)

只需应用this.checked

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

Demo

答案 1 :(得分:0)

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

如果是这样,只需添加简单!在this.checked前面

  

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

答案 2 :(得分:0)

您可以使用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
         });

答案 3 :(得分:0)

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

如果您想清除所有使用

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

然而,这也清除了第一个复选框。为防止这种使用

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