<!DOCTYPE html>
<html>
<head>
<title>Checkbox 全选全不选示例</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
// 点击全选框时
$("#checkAll").click(function(){
$(".item").prop('checked', $(this).prop('checked'));
});
// 单个checkbox状态改变时,检查是否需要取消全选框
$(".item").click(function(){
if($(".item:checked").length == $(".item").length){
$("#checkAll").prop('checked', true);
} else {
$("#checkAll").prop('checked', false);
}
});
});
</script>
</head>
<body>
<input type="checkbox" id="checkAll"> 全选/全不选<br>
<input type="checkbox" class="item"> 选项1<br>
<input type="checkbox" class="item"> 选项2<br>
<input type="checkbox" class="item"> 选项3<br>
</body>
</html>
上述代码是一个使用jQuery实现的checkbox全选全不选的简单示例。其中,我们定义了一个全选框(`#checkAll`),以及几个具有`item`类的复选框(`.item`)。
- 当点击全选框时,会触发`click`事件,通过jQuery的`.prop()`方法将所有`.item`类的复选框的`checked`属性设置为与全选框相同的状态,实现全选或全不选。
- 当点击任意一个`.item`类的复选框时,同样触发`click`事件,并检查所有`.item`类的复选框中已选中的数量是否等于`.item`类的复选框总数。如果是,则将全选框的`checked`属性设置为`true`(全选);如果不是,则设置为`false`(非全选)。