通过全局变量访问具有id的元素
Accessing elements with IDs via their global variables
这是一个不太为人所知的事实,大多数web浏览器为页面上每个具有id
属性的元素创建一个全局变量:
<header id="page-header"></header>
JS:
window['page-header'].style.fontFamily = "Comic Sans MS";
我的问题:
- 这是一种可靠的选择元素的方法吗?
- 有理由用
document.getElementByID
代替吗?我猜访问带有全局变量的ID元素会比document.getElementByID
更快。
这是一个演示。
*我已经在最新版本的Chrome、Firefox和IE中进行了测试。
我在jsperf和Chromium v25上测试了它,getElementByID要快得多
注意事项:
如果window
对象已经有一个具有该名称的属性,它将不会被覆盖。
像img
这样使用name
属性的元素也将成为窗口对象的属性。因为name属性不需要是唯一的,所以可能会出现这种情况:
<img name="test"/>
<img name="test"/>
<img id="test"/>
在一些较旧的浏览器中,window.test
将返回一个包含三个元素的NodeList。
所以使用getElementById
方法更安全。
相关文章:
- Javascript:表单验证getElementById仅返回第一个id元素
- 如何为每个带有数字的id元素使用Javascript函数
- 使用regex选择ID元素
- Bootstrap Navbar在选择ID元素后未折叠
- JavaScript-更改一组包含特定文本和变量ID元素的链接
- 父页面中的 JQuery 未在部分视图中检测到 id 元素
- ID 元素在作为参数给出时返回
- 当 Javascript 中的 POST ID 元素插入 PDO 时,数据库中没有结果
- 为什么变量值不显示在 id 元素中
- 如何查找 id 元素的文本值
- 使用 ajax 将 id 元素传递给数据库
- 从另一个HTML文件中获取ID元素
- 正在克隆html标记id元素
- 如何在html中循环使用ID元素
- 获取动态生成的id元素的内部文本发送到谷歌分析
- 如何通过tagname检查ID元素
- jQuery滚动到底部的ID元素
- 检查Id元素javascript
- 在我显示一个id元素后,页面跳转到顶部
- 如何在HTML中突出显示当前的id元素