2016-12-10 8 views
3

最近、idを持つhtml要素への参照に、そのid(jsbin)という名前の変数を使ってjavascriptでアクセスできることがわかりました。Javascript:jsにまだ存在するgetElementById(id)を持つ要素を取得するのはなぜですか?

なぜそうですか? idを書くのではなく、なぜgetElementById(id)を使用する必要がありますか?

+1

2つの質問が重複しています。 [idを持つDOMツリー要素はグローバル変数になりますか?](http://stackoverflow.com/q/3434278/218196)、[JavaScriptで要素IDを識別子として使用するのはなぜですか?](http:// stackoverflow .com/q/25325221/218196) –

+0

@FelixKling:Good find。 –

答えて

5

なぜそうですか?

初期のブラウザでは、それはnow become standardizedでした。

私は単にIDを書く代わりにgetElementById(id)を使用する必要がありますか?

技術的に、あなたはしません。しかし、グローバル名前空間がであり、本当に混雑していることに気をつけてください。。そこにはたくさんのものが投げ込まれています。 IDを持つ要素だけでなく、nameがある場合は特定の要素、名前などによるブラウザのコンテキストなどは、競合が発生する可能性があることを意味します。たとえば、id="document"の要素がある場合、自動グローバルは作成されません。他の競合するグローバルは、ブラウザによって異なる場合があります。また、有効なJavaScript識別子(id="foo-bar"など)でないidの値は、完全に有効なidの値ですが、そのグローバルなグローバル(window["foo-bar"])は使いにくいです。 getElementByIdを使用

は、具体的には、そのIDnameない、など)と要素探し。だから、より包括的で信頼できるものです。正しくそれを制約することができなかったIEの時代遅れのバージョンのバグを、無視


関連する問題