[问题探讨]多元素同id时的事件绑定

问题分析:

id作为识别元素的唯一标识,从语义上讲不应该出现共用现象,实际操作中如果有多个元素共用id也会造成意料之外的问题。
项目结构简单时,这样的错误一般不会出现,但是在结构复杂,又有大量重复功能出现时容易出现id重复现象。
实际操作中,今天有发现一个功能异常,A处和B处功能相同,而且A和B的父页面默认隐藏,都通过对应的点击事件触发弹窗显示,A处和B处的功能时好时坏,最终排查为id重复导致的,项目代码因为不能放出来,所以写了如下小demo来展示这个问题。

问题答案:

多元素同id时的事件绑定只在第一个元素生效

示例代码:

<html lang="zh-en">
    <head>
    </head>
    <body>
	      <div id="tom">tom1</div>
	      <div id="tom">tom2</div>
	      <div id="tom">tom3</div>      
	      <script>
				var tom =  document.getElementById('tom');
	        	tom.onclick = function() {
	            	console.log(tom); 
	            	// 点击tom1时输出 <div id="tom">tom1</div>
	            	// 其他两个元素不触发该事件
	        	}
	      </script>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tom_wong666

码字不易,分享有功,期待赞赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值