ID が割り当てられた DOM 要素とグローバル プロパティ
前の質問では、ID を持つ特定の DOM 要素が変数としてアクセスできることがわかりました。 Internet Explorer および Chrome のウィンドウ オブジェクトの名前またはプロパティ。たとえば、HTML 要素の場合:
<div>
innerHTML プロパティは次のように取得できます:
alert(example.innerHTML); // Alerts "some text". alert(window["example"].innerHTML); // Alerts "some text".
これにより、次のような疑問が生じます。
プロパティとグローバル アクセシビリティ
意図された動作は、名前付き要素がドキュメント オブジェクトの明らかなプロパティになることです。ただし、このアプローチには、要素名が実際のドキュメントのプロパティと競合する可能性があるため、問題があります。
Microsoft Internet Explorer では、名前付き要素をウィンドウ オブジェクトのプロパティとして割り当てることで、問題がさらに悪化しました。これにより、ドキュメントまたはウィンドウ オブジェクトのメンバーと一致する要素名を避ける必要があるため、問題はさらに複雑になります。
グローバル アクセシビリティに関する問題
さらに、名前付き要素は次のように表示されます。グローバルのような変数。通常、グローバル変数と関数の宣言はそれらを目立たなくしますが、名前が一致するグローバル変数に値を割り当てると、Internet Explorer でエラーが発生する可能性があります。
ベスト プラクティス
一般に、グローバル プロパティとして名前付き要素に依存したり、グローバル変数を作成するときに var 宣言を省略したりすることはお勧めできません。 document.getElementById のサポート範囲が広くなり、曖昧さが軽減されるため、document.getElementById に従うことをお勧めします。入力が問題になる場合は、短い名前の単純なラッパー関数の使用を検討してください。
キャッシュとブラウザの最適化
ID から要素へのルックアップ キャッシュの維持は、通常は不要です。ブラウザーは多くの場合、クイック ルックアップを使用して getElementById 呼び出しを最適化するためです。要素の ID が変更されたり、ドキュメントに追加/削除されたりすると、潜在的な問題が発生します。
標準化と将来への影響
HTML5 仕様では、以前は非標準だった次の慣例を成文化しました。名前付き要素をドキュメントとウィンドウのプロパティに追加します。これは、Firefox 4 もこの機能をサポートすることを意味します。
結論
特定のブラウザではグローバル プロパティとして ID を使用して DOM 要素にアクセスできますが、この方法は次のとおりです。潜在的な衝突や曖昧さのために落胆します。 document.getElementById または単純なラッパー関数に依存することをお勧めします。
以上がグローバル プロパティとして ID によって DOM 要素にアクセスできますか? アクセスする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。