DOM 节点列表
Node 列表类似于包含 HTML 元素的数组或 HTML 集合。但是,它与数组或 HTML 集合不同。
当您使用 querySelectorAll() 方法和 childNodes 属性时,所有现代浏览器都会返回节点列表。
你可以将 NodeList 作为数组遍历,但不能将其他数组方法(如 map()、filter() 等)与节点列表一起使用。
例
使用 forEach() 方法遍历节点列表元素
在下面的程序中,我们定义了四个 <p> 元素,其中包含各种语言。
之后,我们使用 querySelectorAll() 方法获取节点列表中类名等于 'lang' 的所有元素。之后,我们使用 forEach() 方法遍历节点列表并打印每个元素的 HTML。
示例:获取节点列表的长度
在下面的代码中,我们使用了节点列表的 'length' 属性来计算节点列表中的节点数。
HTMLCollection 和 NodeList 之间的区别
HTML 集合和节点列表看起来很相似,但它们之间存在细微差别,我们在下表中对此进行了解释。
特征 | HTMLCollection | 节点列表 |
---|---|---|
返回方式 | 通常,getElementByClassName()、getElementByTagName 方法和 children 属性返回 HTML 集合。 | 通常,querySelectorAll() 方法和 childNodes 属性返回 Node 列表。 |
数组方法 | 它支持有限的数组方法。 | 它还支持有限的数组方法,如 forEach()。 |
Live 集合 | 某些浏览器支持使用 HTML 集合进行实时收集。 | 如果更新 DOM 元素,它会更新。 |