繁体   English   中英

通过其全局变量访问具有ID的元素

[英]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 v​​25 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM