📅  最后修改于: 2023-12-03 14:56:44.992000             🧑  作者: Mango
当使用 getElementByClassName
或者 getElementsByTagName
这两个方法时,会返回一个 NodeList
类型的对象。然而,该类型无法直接使用 forEach
方法,该方法用于对数组进行迭代。
所以,当我们试图对 NodeList
对象使用 forEach
方法时,会报错 TypeError: NodeList doesn't have forEach method
。
为了解决这个问题,我们可以将 NodeList
对象转换成数组,然后再使用 forEach
方法进行迭代。
const nodeList = document.getElementsByClassName('example-class');
const arrayNodeList = Array.from(nodeList); // 将 nodeList 转换成数组
arrayNodeList.forEach(function (element) {
// 对数组进行迭代
console.log(element);
});
我们还可以将以上代码简化为一句话:
Array.from(document.getElementsByClassName('example-class')).forEach(function (element) {
// 对数组进行迭代
console.log(element);
});
这样就可以对 NodeList
对象进行迭代操作了。