質問は次のように聞こえます。「提供されたIDを持つHTMLタグは、グローバルにアクセス可能なDOM要素になりますか?」
答えはイエスです!
これが機能することを意図した方法であり、そもそもIDがW3Cによって導入された理由
です。解析されたスクリプト環境でのHTMLタグのIDは、対応するDOM要素ハンドルになります。
しかし、Netscape Mozillaは(侵入する)W3Cに準拠することを拒否し、非推奨のName属性を頑固に使用して大混乱を引き起こしました。そのため、W3Cによる一意のIDの導入によってもたらされたスクリプト機能とコーディングの利便性が損なわれました。
Netscape Navigator 4.7の大失敗の後、彼らの開発者は全員W3Cに侵入しましたが、彼らの仲間は間違った慣行や誤用された例でWebに取って代わっていました。特定のDOM要素にアクセスするためにIDハンドルを使用するスクリプトが単純に機能しないように、ID属性と同等の非推奨のName属性[!これは一意ではありません]の使用と再利用を強制します。
そして、彼らが行ったのは、少なくともそれを非効率にし、単にそれを壊さなかった場合に備えてブラウザにもっとオーバーヘッドを与えるdocument.all.ElementID.property
代わりに、広範なコーディングレッスンと例[とにかく彼らのブラウザは認識しない]を書いて公開する のと同じようにしたElementID.property
(現在は[1996-97]、非推奨)Nameに同じトークンを使用し、同じトークン値を提供する標準ID属性を使用するHTMLドメイン。
彼らは、ID属性が短く、したがってバイトを節約し、古いNameプロパティよりもコーダーにとって便利であることを除いて、名前とIDが実質的に同じであることを、当時の無知なコード作成アマチュアの圧倒的な軍隊に簡単に納得させることができました。もちろんそれは嘘だった。または、HTMLの公開された記事に取って代わり、スクリプトエンジンでアクセスできるようにするには、タグに名前とIDの両方を指定する必要があることを説得力のある記事にします。
Mosaic Killers [コードネーム"Mozilla"]はとても腹を立てて、「私たちがダウンしたら、インターネットもダウンするべきだ」と考えました。
一方、台頭するMicrosoftは非常に素朴で、非推奨で削除のNameプロパティのマークを付けたままにして、一意の識別子であるIDであるかのように扱い、のスクリプト機能を壊さないようにする必要があると考えました。 Netscapeの研修生によってコーディングされた古いページ。彼らは致命的に間違っていました...
また、IDの競合する要素の配列コレクションを返すことも、この意図的な人為的な問題の解決策ではありませんでした。実際、それは目的全体を打ち負かしました。
そして、これがW3Cが醜くなりdocument.getElementById
、それに付随するロココのような厄介な構文のような馬鹿げたものを私たちに与えた唯一の理由です...(...)