html突然出现两个相同的元素,html页面中不能有两个相同id的元素吗?

探讨了HTML中ID属性重复的情况,通过实验发现不同DOM方法获取元素的行为差异,并对规范和实际应用进行了反思。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前看书的时候,页面中如果有两个以上的样式相同最好使用class属性,如果使用id属性就会报错,一直就这么以为着,但是今天试了试不是那么回事?

Function Example 10
aaa
bbb

(function(){

//alert(document.getElementById("my").innerHTML);//aaa

//alert(document.all["my"].innerHTML);//undefined

//alert(document.all("my",1).innerHTML);//bbb

/*IE8/9及Firefox/Chrome/Safari/Opera 的最新版已经支持它们*/

alert(document.querySelectorAll("#my")[1].innerHTML);//bbb

})();

当使用dom方法时会取到和querySelector一样的结果,就是取到了第一id的text,当利用document.all[

id]时无法识别,但是使用document.all.aaa(0)就会取到aaa,可以认为

document.all.aaa(0)约等于document.al

l("aaa",0)---》这个是不是有些像函数的Curry了,呵呵

最要命的是querySelectorAll选择符,这个已经得到现代浏览器的实现,而这个浏览器的结果和document.all()又是惊人的相似,难道W3C认为在页面中使用两个id不是错事,这是“糟粕”吗?

玉伯说过“很多人精通js,但是不懂前端”,可能也是这个原因吧。有的时候不是你用的对与不对,只是用的好与不好罢了,以后还是会使用一个id,但是希望书本上说页面上只能是一个id的说法应该改一下,从页面规范上说岂不是更好,毕竟前端不仅仅是技术----前端大牛市这么说的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值