JS踩坑——1.0多选按钮,全不选按钮,反选按钮例子

项目场景:

网上调查上较为常见的多选,全不选和反选


问题描述:

使用以下代码时,全选和全不选都是正常,而反选却并没有想要的效果


function selectAll()				
{
	var boxGroups=document.getElementsByTagName('input');								
	
	for(let i=0;i<boxGroups.length;i++)				
	{
		boxGroups[i].checked='checked';					
	}
}

function selectNotAll()
{
	var boxGroups=document.getElementsByTagName('input');								
	
	for(let i=0;i<boxGroups.length;i++)				
	{
		boxGroups[i].checked='';					
	}
}

function selectRestOfAll()
{
	var boxGroups=document.getElementsByTagName('input');								
	
	for(let i=0;i<boxGroups.length;i++)				
	{
		if(boxGroups[i].checked=='checked')
		{
			boxGroups[i].checked='';
		}
		else{
			boxGroups[i].checked='checked';
		}									
	}
}
<body>		
		<ul>
			<button onclick="selectAll()">全选</button>
			<button onclick="selectNotAll()">全不选</button>
			<button onclick="selectRestOfAll()">反选</button>
			<li><input type="checkbox"/></li>
			<li><input type="checkbox"/></li>
			<li><input type="checkbox"/></li>
			<li><input type="checkbox"/></li>
			<li><input type="checkbox"/></li>
			<li><input type="checkbox"/></li>
		</ul>
	</body>

原因分析:

这里多选和全不选的思路就是,获取到所有input标签,其实就是一个数组,通过getElementsByTagName

坑点1:getElements,这一类方法,只要是带s的,返回的就是数组的形式

checkbox拥有checked属性,当checked='checked'时,代表该框被选中

坑点2:boxGroups[i].checked=='checked'这样不能作为判断条件


解决方案:

if(boxGroups[i].checked=='checked')改成boxGroups[i].checked==true

暂时还不知道具体原因是什么,如有大佬指点,那感情好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值