方便实用的jQuery checkbox复选框全选功能

HTML

1
2
3
4
5
6
<!-- 主复选框 -->
<input type="checkbox" id="ck" name="ckAll">
<!-- 子复选框项 -->
<input type="checkbox" id="ck1" name="ckItm">
<input type="checkbox" id="ck2" name="ckItm">
<input type="checkbox" id="ck3" name="ckItm">

JS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var $ckAll = $("input[name='ckAll']");
var $ckItm = $("input[name='ckItm']");
var len = $ckItm.length;
$ckAll.click(function() {
  // 获取$ckAll当前选中状态,如果选中,其他子复选框则选中,反之则取消
$ckItm.prop('checked',this.checked);
});
$ckItm.click(function() {
// 给b绑定判断事件
var b = $ckItm.filter(":checked").length == len;
// 当所选的子复选框个数等于总个数,主复选框则会被选中
// 通过三元运算判断
var flag = $ckAll.prop("checked",b?true:false);
});

演示