1

あまり知られていない事実ですが、ほとんどの* Web ブラウザーは、次のid属性を持つページ上のすべての要素に対してグローバル変数を作成します。

HTML:

<header id="page-header"></header>


JS:

window['page-header'].style.fontFamily = "Comic Sans MS";


私の質問:

  • これは要素を選択する信頼できる方法ですか?
  • document.getElementByID代わりに使用する理由はありますか? グローバル変数を使用してID化された要素にアクセスする方が、より高速になると思いますdocument.getElementByID


これがデモです。
*最新バージョンの Chrome、Firefox、および IE でこれをテストしました。

4

2 に答える 2

2

私はjsperfでそれをテストし、Chromium v​​25でgetElementByIDははるかに高速でした

于 2013-04-17T23:36:03.133 に答える
1

考慮すべき事項:

オブジェクトにその名前のプロパティが既にある場合、window上書きされません。

属性imgを使用するような要素は、window オブジェクトのプロパティにもなります。namename 属性は一意である必要がないため、次のことが発生する可能性があります。

<img name="test"/>
<img name="test"/>
<img id="test"/>

一部の古いブラウザーwindow.testでは、3 つの要素を含む NodeList が返されます。

したがって、このgetElementById方法を使用する方が安全です。

于 2013-04-17T23:45:25.123 に答える