jQuery实现Checkbox复选框全选、全不选、反选等功能
前段时间使用JavaScript写了一个简易版的Checkbox全选全不选功能
于是最近使用jQuery完善了Checkbox的反选、提交等功能,以下为完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用prop和checked实现复选框全选全不选反选等功能</title>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
// 全选按钮功能
$("#checkedAllBtn").click(function () {
$(":checkbox").prop("checked", true);
});
// 全不选按钮功能
$("#checkedNoBtn").click(function () {
$(":checkbox").prop("checked", false);
});
// 反选按钮功能
$("#checkedRevBtn").click(function () {
$(":checkbox[name='items']").each(function () {
// 每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(这里指不同的items复选框)
this.checked = !this.checked;
});
// 获取所有球类运动选项框的数量
var allCount = $(":checkbox[name='items']").length;
// 获取当前球类运动选项框选中的数量
var checkedCount = $(":checkbox[name='items']:checked").length;
// 如果复选框选中数量和总数量相同,则将全选/全不选按钮状态随之更改为true/false
$("#checkedAllNone").prop("checked", allCount === checkedCount);
});
// 提交按钮功能
$("#submitBtn").click(function () {
// :冒号选择器要紧跟着前面的选择器,不能有空格,不然会失去效果
$(":checkbox[name='items']:checked").each(function () {
// 在事件的function函数中,有一个this对象,这个this对象是当前正在相应的DOM对象(这里指选中的运动)
alert(this.value);
});
});
// 全选/全不选按钮功能
$("#checkedAllNone").click(function () {
//在事件的function函数中,有一个this对象,这个this对象是当前正在相应的DOM对象(这里指全选/全不选按钮)
$(":checkbox[name='items']").prop("checked", this.checked);
});
// 当所有球类运动复选框都被选中时,全选按钮同时更改为被选中状态
$(":checkbox[name='items']").click(function () {
// 获取所有球类运动选项框的数量
var allCount = $(":checkbox[name='items']").length;
// 获取当前球类运动选项框选中的数量
var checkedCount = $(":checkbox[name='items']:checked").length;
$("#checkedAllNone").prop("checked", allCount == checkedCount);
});
});
</script>
</head>
<body>
<div style="width:100%;text-align:center">
<form>
<span>请选择你喜欢的多项球类运动吧:</span>
<br><br>
<input type="checkbox" id="checkedAllNone">全选/全不选
<br>
<input type="checkbox" name="items" value="篮球">篮球
<input type="checkbox" name="items" value="足球">足球
<input type="checkbox" name="items" value="冰球">冰球
<input type="checkbox" name="items" value="棒球">棒球
<br><br>
<input type="button" id="checkedAllBtn" value="全选">
<input type="button" id="checkedNoBtn" value="全不选">
<input type="button" id="checkedRevBtn" value="反选">
<input type="button" id="submitBtn" value="提交">
</form>
</div>
</body>
</html>
代码运行效果:
本文来自博客园,作者:Schieber,转载请注明原文链接:https://www.cnblogs.com/xiqingbo/p/front-end-04.html