JavaScript 实现全选、全不选和反选功能

网页中使用到表单复选框时,如果有大量的数据需要选择,经常会用到全选或者反选功能,也可能会用到全不选功能,其实是全选的反选,下面使用原生的js来实现一下全选、全不选和反选功能。

声明:文章转载链接出自:JavaScript 实现全选、全不选和反选功能_js全选和全不选代码_梁辰兴的博客-CSDN博客

一,设计HTML页面

使用input标签的type属性为checkbox来创建多个复选框,input标签的type属性为button创建全选、全不选和反选按钮。HTML实现代码如下:

界面展示

二,解决思路

需要实现全选,首先需要获取到表单元素,将所有复选框表单元素放到一个数组。因为id属性值是唯一的,所以通过name属性或者class属性获取元素比较合适。 得到数组后遍历,将所有checked值设置为true即可实现全选,全不选原理相同 。反选遍历的时候判断如果checked值为true则改为false,checked值为false则改为true 。

1.全选函数

// 全选
function setAll() {
	var hb = document.getElementsByName("hb");
	for (var i = 0; i < hb.length; i++) {
		hb[i].checked = true;
	}
}

2.全不选函数

// 全不选
function unsetAll() {
	var hb = document.getElementsByName("hb");
	for (var i = 0; i < hb.length; i++) {
		hb[i].checked = false;
	}
}

3.反选函数

// 反选
function setOthers() {
	var hb = document.getElementsByName("hb");
	for (var i = 0; i < hb.length; i++) {
		if (hb[i].checked == false)
			hb[i].checked = true;
		else
			hb[i].checked = false;
	}
}

三,综合代码

将上面的函数添加到按钮的点击事件中即可,最终附上源码,如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<ul style="list-style: none;">
			<span>选择爱好</span>
			<li><input type="checkbox" name="hb" />爬山</li>
			<li><input type="checkbox" name="hb" />游泳</li>
			<li><input type="checkbox" name="hb" />攀岩</li>
			<li><input type="checkbox" name="hb" />冲浪</li>
			<li><input type="checkbox" name="hb" />说唱</li>
		</ul>
		<input type="button" onclick="setAll()" value="全选" id="qx" />
		<input type="button" onclick="unsetAll()" value="全不选" id="qbx" />
		<input type="button" onclick="setOthers()" value="反选" id="fx" />
	</body>
	<script>
		// 全选
		function setAll() {
			var hb = document.getElementsByName("hb");
			for (var i = 0; i < hb.length; i++) {
				hb[i].checked = true;
			}
		}
		// 全不选
		function unsetAll() {
			var hb = document.getElementsByName("hb");
			for (var i = 0; i < hb.length; i++) {
				hb[i].checked = false;
			}
		}
		// 反选
		function setOthers() {
			var hb = document.getElementsByName("hb");
			for (var i = 0; i < hb.length; i++) {
				if (hb[i].checked == false)
					hb[i].checked = true;
				else
					hb[i].checked = false;
			}
		}
	</script>
</html>

运行效果

​​​​​​​

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值