可通过ID访问的元素

Ano*_*oop 9 javascript

我看到了一个奇怪的行为.我创造了一个Input.

<input id='inputid' value='value'/>?
Run Code Online (Sandbox Code Playgroud)

并尝试直接从id访问它.而不是抛出异常控制台显示上面的输入元素.

console.log(inputid);
Run Code Online (Sandbox Code Playgroud)

之后我试着将它与之比较 getElementById

console.log( inputid == document.getElementById('inputid'));
Run Code Online (Sandbox Code Playgroud)

控制台正在显示true.

你可以在jsfiddle上看到这种行为.

这是一种奇怪的行为还是我错过了什么?

我测试了它在Chrome 23.0.1271.10 dev-mfirefox 15.0.1.

Que*_*tin 6

回到4.0浏览器的时代,微软决定为每个带有id的元素创建一个全局变量,其名称与包含对该元素的引用的id同名.

在其他一些浏览器中(在某些渲染模式下)出现了对此的支持.这种支持不是通用的,因此应避免使用该功能.

  • @Shusl - 快速测试表明它可能是,你仍然不应该使用它(据我所知)它不是标准化的(它导致代码,其中变量值的来源明显不是明显). (3认同)