解决querySelectorAll获取的元素集合不能在forEach函数中使用函数

94 阅读1分钟

使用querySelectorAll 获取的NodeList

NodeList 对象是节点的集合,通常是由属性,如Node.childNodes 和 方法,如document.querySelectorAll 返回的。

let div = document.queryselectorAll('div');

这个div并不是一个真正的数组

备注: NodeList 不是一个数组,是一个类似数组的对象 (Like Array Object)。虽然 NodeList 不是一个数组,但是可以使用 forEach() 来迭代。你还可以使用 Array.from() 将其转换为数组。

不过,有些浏览器较为过时,没有实现 NodeList.forEach() 和 Array.from()。你可以用 Array.prototype.forEach() 来规避这一问题。

转为为真正的数组

let div1 = Array.from(div);

重点:NodeList中的forEach不能放函数,Array里面的forEach可以放函数