javascript - 找不到选择器时如何访问此元素

标签 javascript html

在我的公司,一些代码纯粹通过 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/

相关文章:

javascript - jQuery 数据表清除标题中的单选按钮

javascript - 在参数之前路由extjs?

javascript - 如何在网页上流式传输(分段)mp4 视频

html - Flex 增长直到溢出滚动,侧边栏中的页脚组件父高度为 100%

audio - MEDIA_ERR_SRC_NOT_SUPPORTED html5 音频问题

javascript - 我怎样才能在div上获取背景的来源

javascript - 从弹出窗口提交表单 - javascript

javascript - 循环幻灯片和改变动画javascript

javascript - 移动设备中 selectize.js 下拉溢出的困难

javascript - 从服务器接收 json 数据以显示 Chart.js 图表不起作用