重複の可能性:
IE/Chrome: DOM ツリー要素はグローバル変数ですか?
私は最近、id への直接参照を使用して、DOM の任意のオブジェクトを JavaScript で使用できることを発見しました。
<div id="layer">IM A LAYER</div>
<script>
alert(layer.innerHTML);
</script>
これが本当なら、getElementById メソッドを使用するとどのような利点が得られるでしょうか?
重複の可能性:
IE/Chrome: DOM ツリー要素はグローバル変数ですか?
私は最近、id への直接参照を使用して、DOM の任意のオブジェクトを JavaScript で使用できることを発見しました。
<div id="layer">IM A LAYER</div>
<script>
alert(layer.innerHTML);
</script>
これが本当なら、getElementById メソッドを使用するとどのような利点が得られるでしょうか?
DOM要素に直接アクセスすると、要素が存在しない場合にエラーが発生します。Wherasを使用getElementByIdすると、が返されNULLます。
some-idまた、JS変数にはダッシュを含めることができないため、たとえば名前にダッシュが含まれている場合は、すべての要素に直接アクセスすることはできません( )。ただし、を使用してそれらにアクセスできますwindow['some-id']。
たとえば、ページ内に別の以前のスクリプトがある場合
<script>
var layer = false; // or any other assignment
</script>
layerへの参照になりwindow.layer、その後layer.innerHTML失敗します。あなたと一緒document.getElementByIdにこのトリッキーなエラーを回避します
これはid、変数名に使用できる文字を含むの場合にのみ機能します。idのようなtext-11場合、またはitem-key-21それは機能しません。