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