13

document.getElementsByTagName('div') 和 document.querySelectorAll('div') 都返回 NodeList 集合。唯一的区别是第一种方法返回实时集合,第二种方法返回静态集合。

问题是 - 是否有机会仅通过检查这些对象来区分一个对象和另一个对象(即 - 不尝试添加/删除某些项目来测试“活跃度”)?

提前致谢

4

2 回答 2

6

NodeList接口不知道它的死或活状态。

interface NodeList {
  Node item(in unsigned long index);
  readonly attribute unsigned long length;
};

它只包含一个属性length和一个方法item,所以恐怕目前无法在不操作 DOM 并查看效果的情况下确定一个对象是否处于活动状态。

于 2010-07-27T17:21:55.890 回答
6
a=document.querySelectorAll('a');
b=document.getElementsByTagName('a');

a.toString() == "[object NodeList]"
b.toString() == "[object HTMLCollection]"

(在 FF/Chrome 中)

于 2011-03-11T05:40:55.967 回答