[英]Accessing elements with IDs via their global variables
大多数* Web浏览器为具有id
属性的页面上的每个元素创建一个全局变量,这是一个不那么广为人知的事实:
HTML:
<header id="page-header"></header>
JS:
window['page-header'].style.fontFamily = "Comic Sans MS";
我的问题:
document.getElementByID
? 我猜想用全局变量访问ID'd元素会比document.getElementByID
更快。
这是一个演示。
*我已经在Chrome,Firefox和IE的最新版本中对此进行了测试。
我在jsperf上测试了它,使用Chromium v25 getElementByID要快得多
有些事情需要考虑:
如果window
对象已具有具有该名称的属性,则不会覆盖该对象。
像img
这样使用name
属性的元素也将成为window对象的属性。 由于name属性不需要是唯一的,因此可能会发生这种情况:
<img name="test"/>
<img name="test"/>
<img id="test"/>
在一些较旧的浏览器中, window.test
将返回包含三个元素的NodeList。
因此使用getElementById
方法更安全。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.