11

document.getElementByIdJavaScript ではライブ DOM 要素を返しますか? パフォーマンス上の理由から知りたい

4

1 に答える 1

14

標準と「ライブ」の区別は、通常、要素のリストに使用されます。document.getElementByIdDOM ノードへの単一のオブジェクト参照を返します。ノードが取得されると、参照は常に同じノードを指します。

例の HTML:
<div id="foo"></div>
JS の例:
var foo,
    bar;
foo = document.getElementById('foo'); //gets the div
bar = document.getElementById('bar'); //null
foo.setAttribute('id', 'bar');
console.log(foo.id); //'bar'
console.log(bar.id); //TypeError

要素の ID が変更された可能性があるため、参照は更新されません。

document.getElementsByTagNameこれは、指定されたタグを持つ要素のリストを返すようなものとは対照的です。要素が DOM に追加または削除されると、リストは自動的に更新されます。

于 2013-10-02T19:33:31.073 に答える