在我的公司中,一些代码纯粹通过id访问html元素,而不是document.getElementById
或jQuery $("#id")
。例如,如果有一个id为test的select,那么他们会在javascript中使用alert(test.selectedIndex)
,这样就可以了。
这破坏了我在DOM中如何找到/访问元素的模型,我希望警告说测试未定义。然而,这是有效的(我已经设置了一个小提琴来仔细检查这个)。任何人都可以解释为什么元素可以通过他们的id访问,而不需要getElementById
/ jQuery选择器?
非常感谢。
答案 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规范的一部分。
总的来说,我不建议依赖它,因为正如你所注意到的那样,它可能会让人感到困惑。