<ul style="list-style-type: none;">
<li>
<input type="checkbox" name="check" />1
</li>
<li>
<input type="checkbox" name="check" />2
</li>
<li>
<input type="checkbox" name="check" />3
</li>
<li>
<input type="checkbox" name="check" />4
</li>
<li>
<input type="checkbox" name="check" />5
</li>
<li>
<input type="checkbox" name="check" />6
</li>
</ul>
<input type="checkbox" name="all" />全选/全不选
方法一
// 通过DOM对象
// 获取当前复选框的状态
// 因为初始时没有设置复选框的checked属性的值,默认为不选中
// this.checked时因为没有指定状态,所以这时的状态是选中状态
// 将选中的状态赋值给一个变量
// 当再次调用时this.checked的状态就会从选中状态改变为不选中状态
<script>
$(function(){
$("input[name='all']").click(function(){
// 方法一
// 获取当前复选框的状态
var flag = this.checked;
// 使用each 遍历所有的name为check复选框
$("input[name='check']").each(function(){
// 将获取的状态赋值给当前对象,
this.checked = flag;
});
});
});
</script>
方法二
通过jQuery对象
$("input[name='all']").click(function(){
// 方法二
// 通过 :checked 选择器、is()方法,is() 用于查看选择的元素是否匹配选择器
var $flag = $(this).is(":checked");
// 使用each 遍历所有的name为check复选框
$("input[name='check']").each(function(){
// 将获取状态通过attr()方法设置当前对象的状态
$(this).attr("checked",$flag);
});
});
方法三 AND 方法四
通过prop()方法
// prop()方法添加或移除标签固有的属性
// 方法三
// 使用DOM对象根据复选框all的状态来判断当前是否选中状态,即this.checked来获取
$("input[name='all']").click(function(){
$("input[name='check']").prop("checked",this.checked);
});
// 方法四
// 通过jQuery对象,来获取复选框名为all的状态,$(this).prop("checked")
$("input[name='all']").click(function(){
$("input[name='check']").prop("checked",$(this).prop("checked"));
});