ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript のグローバル変数として HTML 要素 ID に直接アクセスできる場合があるのはなぜですか?

JavaScript のグローバル変数として HTML 要素 ID に直接アクセスできる場合があるのはなぜですか?

Susan Sarandon
リリース: 2024-12-01 02:00:10
オリジナル
837 人が閲覧しました

Why Can I Sometimes Access HTML Element IDs Directly as Global Variables in JavaScript?

HTML 要素 ID のグローバル変数アクセス

グローバル変数を使用した HTML 要素 ID へのアクセスの適切な処理に関して疑問が生じます。指定された例では、Chrome では a.stuff() 経由で ID「a」の要素に直接アクセスできますが、Firefox では document.getElementById('a').

仕様

HTML4 仕様では、この動作の概要が明示的に規定されていません。ただし、要素 ID をグローバル変数にすることも禁止されません。 WHATWG HTML 仕様では、要素 ID のグローバル アクセスをレガシーまたは互換性の問題として考慮し、現在この動作を義務付けています。

実装

Chrome や Firefox などの主要なブラウザ ( quirks モード)、互換性の理由からこの動作が採用されています。ただし、Firefox では、厳密モードでグローバル変数を介して要素に直接アクセスすることもできますが、その実装は信頼できない可能性があります。

曖昧さ

グローバル変数 a とID「a」の HTML 要素が存在する場合、動作は実行コンテキストによって異なります。ほとんどの場合、JavaScript は HTML 要素よりもグローバル変数 a を優先します。ただし、要素 ID にグローバル変数を使用することは、競合や名前空間汚染の可能性があるため、一般に嫌われます。

HTML ID 内の特殊文字

HTML ID にはハイフン (- )、コロン (:)、およびピリオド (.) は、JavaScript 識別子には使用できません。グローバル変数を介してこれらの要素にアクセスするには、ブラウザーがそれらを変換します。たとえば、ID が「foo-bar」の要素は、グローバル変数 foo-bar を介してアクセスできる可能性があります。

結論

要素 ID をグローバルにする実践では、変数は歴史的にサポートされていますが、HTML4 仕様では明示的に指定されていません。 WHATWG HTML 仕様ではこの動作が必要ですが、要素にアクセスするには document.getElementById() またはその他のメソッドを使用することが推奨されています。混乱が生じたり、グローバル名前空間内の他の変数と競合する可能性があるため、要素 ID にグローバル変数を使用することは避けてください。

以上がJavaScript のグローバル変数として HTML 要素 ID に直接アクセスできる場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート