Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:为什么在js中仍然存在一个getElementById(id)的元素?_Javascript_Html_Dom - Fatal编程技术网

Javascript:为什么在js中仍然存在一个getElementById(id)的元素?

Javascript:为什么在js中仍然存在一个getElementById(id)的元素?,javascript,html,dom,Javascript,Html,Dom,最近我注意到,javascript只需使用一个名为id()的变量,就可以访问一个id为的html元素引用 为什么会这样?为什么我们甚至必须使用getElementById(id)而不是简单地编写id 为什么会这样 因为早期的浏览器做到了这一点,这是非常重要的 为什么我们甚至必须使用getElementById(id)而不是简单地编写id 从技术上讲,你不会。但是请注意,全局名称空间非常非常拥挤。里面有一大堆东西。不仅仅是带有ID的元素,还有某些元素(如果它们有names)、按名称显示的浏览器上下

最近我注意到,javascript只需使用一个名为id()的变量,就可以访问一个id为的html元素引用

为什么会这样?为什么我们甚至必须使用
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。