- NodeList 对象是节点的集合,通常是由属性,如Node.childNodes 和 方法,如document.querySelectorAll 返回的
- NodeList 对象有以下属性:
属性 |
说明 |
length |
NodeList 中包含的节点个数 |
NodeList 对象有以下方法:
方法 |
说明 |
item() |
返回 NodeList 对象中指定索引的节点,如果索引越界,则返回null。等价的写法是 nodeList[i],不过,在这种情况下,越界访问将返回 undefined |
entries() |
返回一个迭代器,允许代码遍历集合中包含的所有键/值对。(在这种情况下,键是从0开始的数字,值是节点。) |
forEach() |
每个 NodeList 元素执行一次提供的函数,将元素作为参数传递给函数。 |
keys() |
返回一个迭代器,允许代码遍历集合中包含的键/值对的所有键。 (在这种情况下,键是从 0 开始的数字。) |
values() |
返回一个迭代器,允许代码遍历集合中包含的键/值对的所有值(节点)。 |
注
- NodeList 不是一个数组,是一个类似数组的对象 (Like Array Object)。虽然 NodeList 不是一个数组,但是可以使用 forEach() 来迭代。你还可以使用 Array.from() 将其转换为数组。
- 不过,有些浏览器较为过时,没有实现 NodeList.forEach() 和 Array.from()。你可以用 Array.prototype.forEach() 来规避这一问题
- 在一些情况下,NodeList 是一个实时集合,也就是说,如果文档中的节点树发生变化,NodeList 也会随之变化
来自 <https://developer.mozilla.org/zh-CN/docs/Web/API/NodeList>