页面中有相同id,DOM对节点的获取

当一个web页面中,有多个id相同的元素,DOM的根据id查询节点的操作是怎么进行的呢?

首先,要明确的是id选择器规则上是不允许有相同的,要保证id是唯一的。如果是有共同属性的某类元素进行操作时,用class选择器。

其次,页面当中是可以存在多个相同id,页面能正常显示,且不会出现错误。

鉴于这个问题被面试官提及,虽然感觉工作上不会如此使用,但还是做了一下测试。


公共js代码:

	<script type="text/javascript">
		function t1(){
			var p = document.getElementById("first");
			console.log(p.innerHTML);
		}
	</script>

测试1:同级标签,赋上相同的id

body部分:

	<div>
		<input type="button" value="按钮1" οnclick="t1();"/>
	</div>
	<div>
		<p id="first">1111111</p>
	</div>
	<div>
		<p id="first">22222</p>
	</div>
	结果:
	

测试2:父子级标签,赋上相同id

body部分:

	<div>
		<input type="button" value="按钮1" οnclick="t1();"/>
	</div>
	<div id="first">
		3333333
		<p id="first">1111111</p>
	</div>
    结果:
	

测试3:“叔侄”级标签,赋上相同的id,“叔”级标签在前
    body部分:
	<div>
		<input type="button" value="按钮1" οnclick="t1();"/>
	</div>
	<p id="first">444444</p>
	<div>
		<p id="first">1111111</p>
	</div>
    结果:
	

测试4:“叔侄”级标签,赋上相同的id,“叔”级标签在后
    body部分:
	<div>
		<input type="button" value="按钮1" οnclick="t1();"/>
	</div>
	<div>
		<p id="first">1111111</p>
	</div>
	<p id="first">555555</p>
    结果:
	




综上,在一个web页面中,存在多个相同id的元素时,DOM的根据id查询节点,读取到的是 从上至下读取到的第一个id的元素节点,与其他相同id的元素无关。
但在使用时,仍然建议按规定来一个页面中的id是唯一的,避免发生不必要的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值