[問題探討]多元素同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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章