在我的公司,一些代码纯粹通过 id 访问 html 元素,而不是 document.getElementById
或 jQuery $("#id")
。例如,如果有一个 id 为 test 的选择,他们就会在 javascript 中使用 alert(test.selectedIndex)
并且这有效。
这打破了我关于如何在 DOM 中找到/访问元素的模型,我本以为警报会说测试未定义。但是,这有效(我已经设置了一个 fiddle 来仔细检查)。任何人都可以解释为什么元素可以通过它们的 id 访问,而不需要 getElementById
/jQuery 选择器吗?
非常感谢。
最佳答案
参见 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 规范的一部分。
但一般来说,我不建议依赖它,因为正如您所注意到的,它可能会非常困惑。
关于javascript - 找不到选择器时如何访问此元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25053858/