📌  相关文章
📜  类型“NodeListOf”上不存在属性“forEach”<Element> &#39;. - Javascript(1)

📅  最后修改于: 2023-12-03 14:56:44.992000             🧑  作者: Mango

NodeListOf 类型上不存在属性 forEach

当使用 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 对象进行迭代操作了。