使用iquery实现全选、全不选、反选功能

实现全选、全不选、反选

实现效果

在这里插入图片描述

代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
	
	$(function(){
		//全选  先给按钮绑上单击事件
		$("#checkedAllBtn").click(function () {
			//获取全部的复选框给它选中
			$(":checkbox").prop("checked",true);
        });

		//全不选
		$("#checkedNoBtn").click(function () {
			//获取全部的复选框
			$(":checkbox").prop("checked",false);
        });

		//反选
		$("#checkedRevBtn").click(function () {
			//取得相反的复选框
			//反选,是经济上只操作对应的4个具体运动,是否全选or全不选的框,不在考虑的范围之内

			//先查询出所有的球类的复选框
			//然后进行遍历,看哪个选上了,哪个没有选上
			$(":checkbox[name='items']").each(function () {
				//在each()遍历的函数中,使用this对象(当前正在遍历到的DOM对象)进行相关的操作
				this.checked = !this.checked;//对 现在的状态取反
            });

			//在操作完4个球类之后,回头看一下是否符合满选。并做出相应的操作
			//获取全部的	球类个数,再获取选中的球类个数
			var allCounts = $(":checkbox[name='items']").length;
			var checkedCounts = $(":checkbox[name='items']:checked").length;

			// if(allCounts==checkedCounts){
			//     $("#checkedAllBox").prop("checked",true);
			// } else {
             //    $("#checkedAllBox").prop("checked",false);
			// }
			//可以优化为:
            $("#checkedAllBox").prop("checked",allCounts==checkedCounts);
        });

		//提交
		$("#sendBtn").click(function () {
			$(":checkbox[name='items']:checked").each(function () {
				alert(this.value);
            });
        });

		//全选/全不选 按钮(位于最上面的按钮)
		$("#checkedAllBox").click(function () {
			//要操作下面的4个球类

			//在事件的function()中,有一个this对象。这个this对象,是当前正在响应事件的DOM对象
			// alert(this.checked);
			$(":checkbox[name='items']").prop("checked",this.checked);
        });

		//要给下面的 4个球类的复选框,都绑上单击事件
		//实现:一个球类运动的选择与否,也可以影响到,反映整个所有的球类是否实现 全选
        $(":checkbox[name='items']").click(function () {
			//实现:每一个球类运动的按钮,在点击的时候进行判断:选中的球类数目 与 总共有的球类数目的大小。
            //二者相等的话,是满选,应该自动勾选,【全选/全不选】项;相反,由满选变为非满选的时候,就应该自动把该项 去掉勾选状态。
            //其实,是跟实现反选的代码是一样的
            //获取全部的	球类个数,再获取选中的球类个数
            var allCounts = $(":checkbox[name='items']").length;
            var checkedCounts = $(":checkbox[name='items']:checked").length;
            $("#checkedAllBox").prop("checked",allCounts==checkedCounts);

        });

	});
	
</script>
</head>
<body>

	<form method="post" action="">
	
		你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选 
		
		<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 />
		<input type="button" id="checkedAllBtn" value="全 选" />
		<input type="button" id="checkedNoBtn" value="全不选" />
		<input type="button" id="checkedRevBtn" value="反 选" />
		<input type="button" id="sendBtn" value="提 交" />
	</form>

</body>
</html>

行百里者,半九十!
坚持下去!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值