当找不到选择器时,如何访问此元素

时间:2014-07-31 08:11:21

标签: javascript html

在我的公司中,一些代码纯粹通过id访问html元素,而不是document.getElementById或jQuery $("#id")。例如,如果有一个id为test的select,那么他们会在javascript中使用alert(test.selectedIndex),这样就可以了。

这破坏了我在DOM中如何找到/访问元素的模型,我希望警告说测试未定义。然而,这是有效的(我已经设置了一个小提琴来仔细检查这个)。任何人都可以解释为什么元素可以通过他们的id访问,而不需要getElementById / jQuery选择器?

非常感谢。

1 个答案:

答案 0 :(得分:2)

请参阅http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object(注意javascript中的'globals'只是从窗口对象的属性中查找,因此window[id]id完全相同,如果id不是定义为局部变量)

这是以前由IE添加的非标准行为,现已成为HTML5规范的一部分。

总的来说,我不建议依赖它,因为正如你所注意到的那样,它可能会让人感到困惑。