【JavaScript】实现对复选框的全选和反选

用js实现对复选框的全选和反选


一、实现效果

在这里插入图片描述

二、实现代码如下

1.html

代码如下(示例):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="checkbox" id="all" />全选
		<hr >
		<input type="checkbox" />打游戏
		<input type="checkbox" />学习
		<input type="checkbox" />睡觉
	</body>
</html>

2.js代码

<script>
	// 获取全选input
	var _all=document.querySelector("#all");
	// 获取所有反选input
	var _inputs=document.querySelectorAll("input:not(#all)")
			
	//全选
	_all.onclick=function(){
	// 1、获取全选的状态
	var status=_all.checked;
	// 2、保证全选的checked值与反选一致
	_inputs.forEach(function(tag){
		tag.checked=status;
	  })
	}
			
	//反选
	_inputs.forEach(function(tag){
	//点击每一个复选框
	tag.onclick=function(){
	//过滤出当前已选中的所有复选框
	var chboxes=Array.from(_inputs).filter(function(obj){
		return obj.checked==true;
	})
	//如果选中的复选框个数=当前所有复选框个数
	// if(chboxes.length==_inputs.length){
	// 	_all.checked=true;
	// }else{
	// 	_all.checked=false;
	// }
					
		_all.checked=chboxes.length==_inputs.length;
	  }
	})
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值