11

在 JavaScript 中是否document.getElementById返回一个活动的 DOM 元素?出于性能原因,我很想知道

4

1 回答 1

14

标准和“实时”之间的区别通常用于元素列表document.getElementById返回对 DOM 节点的单个对象引用。获取节点后,引用将始终指向同一节点。

示例的 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 或从 DOM 中删除时,列表将自动更新。

于 2013-10-02T19:33:31.073 回答