Javascript:为什么在js中仍然存在一个getElementById(id)的元素?
最近我注意到,javascript只需使用一个名为id()的变量,就可以访问一个id为的html元素引用 为什么会这样?为什么我们甚至必须使用Javascript:为什么在js中仍然存在一个getElementById(id)的元素?,javascript,html,dom,Javascript,Html,Dom,最近我注意到,javascript只需使用一个名为id()的变量,就可以访问一个id为的html元素引用 为什么会这样?为什么我们甚至必须使用getElementById(id)而不是简单地编写id 为什么会这样 因为早期的浏览器做到了这一点,这是非常重要的 为什么我们甚至必须使用getElementById(id)而不是简单地编写id 从技术上讲,你不会。但是请注意,全局名称空间非常非常拥挤。里面有一大堆东西。不仅仅是带有ID的元素,还有某些元素(如果它们有names)、按名称显示的浏览器上下
getElementById(id)
而不是简单地编写id
为什么会这样
因为早期的浏览器做到了这一点,这是非常重要的
为什么我们甚至必须使用getElementById(id)
而不是简单地编写id
从技术上讲,你不会。但是请注意,全局名称空间非常非常拥挤。里面有一大堆东西。不仅仅是带有ID的元素,还有某些元素(如果它们有name
s)、按名称显示的浏览器上下文等,这意味着可能存在冲突。例如,如果您有一个带有id=“document”
的元素,则不会创建自动全局变量。另一方面,冲突的全局变量可能因浏览器而异。另外,不是有效JavaScript标识符的id
值(如id=“foo-bar”
)仍然是完全有效的id
值,但是它的自动全局(窗口[“foo-bar”]
)使用起来很麻烦
使用getElementById
专门查找具有ID1(而不是name
等)的元素。因此,它更具包容性和可靠性
1忽略IE过时版本中的错误,这些错误无法正确约束它。重复了几个问题,例如和@FelixKling:Good find。