NodeList
是 JavaScript 中的一个接口,它表示一个节点的集合,这些节点可以是文档中的元素节点、属性节点或文本节点等。NodeList
可以通过诸如 document.querySelectorAll()
这样的方法获取,它返回一个实时的节点列表,这意味着当文档更新时,这个列表也会自动更新。
NodeList
对象的一个属性,表示集合中节点的数量。NodeList
是实时的,这意味着如果你在文档中添加或删除了节点,NodeList
会自动反映这些变化。document.getElementsByTagName()
或 document.getElementsByClassName()
获取的 NodeList
是静态的,不会随着 DOM 的变化而更新。document.querySelectorAll()
获取的 NodeList
是动态的,会随着 DOM 的变化而更新。NodeList
。NodeList
来优化性能。NodeList
提供了一种便捷的方式来遍历和操作节点。// 获取所有 class 为 'example' 的元素
const elements = document.querySelectorAll('.example');
// 获取 NodeList 的长度
console.log(elements.length); // 输出 NodeList 中元素的数量
// 遍历 NodeList 并对每个元素执行操作
elements.forEach(element => {
element.style.color = 'red';
});
NodeList
没有 forEach
方法虽然 NodeList
看起来像数组,但它并不继承自 Array
,因此没有 forEach
方法。
解决方法:
Array.from()
或扩展运算符 [...]
将 NodeList
转换为数组。const elements = document.querySelectorAll('.example');
Array.from(elements).forEach(element => {
element.style.color = 'red';
});
for
循环: 直接使用传统的 for
循环遍历 NodeList
。const elements = document.querySelectorAll('.example');
for (let i = 0; i < elements.length; i++) {
elements[i].style.color = 'red';
}
通过这些方法,你可以有效地处理 NodeList
并解决常见的遍历问题。
领取专属 10元无门槛券
手把手带您无忧上云