当HTML DOM中存在重复ID的元素时,javascript getElementById()的行为?

Arj*_*jun 4 javascript

当HTML DOM中存在重复ID的元素时,是否有人可以了解javascript getElementById()的行为?

Aym*_*adi 9

虽然没有定义标准行为,但通常会返回找到的第一个元素.

演示:http://jsfiddle.net/ruNKK/


Esa*_*ija 8

如果您有多个具有相同ID的元素,则可以选择全部使用

document.querySelectorAll("[id='myid']")
Run Code Online (Sandbox Code Playgroud)

但是,如果你控制它,你应该只修复HTML.


Guf*_*ffa 6

是的,行为未定义.

标记无效,并且没有标准定义浏览器在该情况下应该执行的操作.

每个浏览器都会尝试做一些合理的事情,通常会返回第一个元素.可以处理的其他可能方法是返回最后一个元素,根本不返回任何元素(null)或抛出错误.