Javascript 如何确保获得可以在其上使用forEach的HTML节点/元素集合?
所以我才知道我是否使用Javascript 如何确保获得可以在其上使用forEach的HTML节点/元素集合?,javascript,Javascript,所以我才知道我是否使用 document.querySelectorAll('selector') 或 后者不能用.forEach进行迭代。这可能是因为后者返回类似数组的对象,而前者返回节点列表 现在我读到一些浏览器在使用时返回类似数组的对象 document.querySelectorAll('selector')) 我甚至不确定这个问题是否适用于我,因为我使用的是一个基于Web包的框架,它使用Babel7将我的代码传输到ES2015。但是我想确保我的代码可以在尽可能多的浏览器上运行,因此
document.querySelectorAll('selector')
或
后者不能用.forEach进行迭代。这可能是因为后者返回类似数组的对象,而前者返回节点列表
现在我读到一些浏览器在使用时返回类似数组的对象
document.querySelectorAll('selector'))
我甚至不确定这个问题是否适用于我,因为我使用的是一个基于Web包的框架,它使用Babel7将我的代码传输到ES2015。但是我想确保我的代码可以在尽可能多的浏览器上运行,因此,如果有一个JS方法可以从DOM中检索元素,这将是一件好事
另外,有人能给我指一下解释JS列表的文档吗?我找不到太多,只有关于数组的文档。列表只是JS中数组的别名吗?
querySelectorAll
返回一个,而getElementsByClassName
返回一个
最近的发展似乎是所有的数组方法都添加到了NodeList
s中,而HTMLCollection
多年来都没有改变,所以我会尝试使用NodeList
s,因为它们是最新的,并提供.forEach
等
我会写:
for(const el of document.querySelectorAll('.some-class'))
//...
但是我想确保我的代码可以在尽可能多的浏览器上运行,因此,如果有一个JS方法可以从DOM中检索元素,这将是一件好事
可以肯定的是,无论您使用什么新功能,旧浏览器都没有更新的功能。不过这不是你的问题,Webpack会为你处理这些问题,只要确保添加必要的多边形填充即可
另外,有人能给我指一下解释JS列表的文档吗
JS中没有列表,只有一个被称为arraylike对象的新词,它是包含数字键的对象,具有
.length
,但是它们不是从数组继承的。出于某种原因,NodeList
和HTMLCollection
都是类似于数组的对象。可能的重复项也许你也应该看看,JavaScript本身没有列表。JavaScript中的数组有点像其他语言中的列表/流,所以它可能就是您要寻找的。
for(const el of document.querySelectorAll('.some-class'))
//...