如何在 Javascript 中迭代 HTMLCollection

pin*_*pii 2 javascript arrays

我在用:

var links = document.getElementsByTagName('a');
Run Code Online (Sandbox Code Playgroud)

获取页面上的所有链接。我们需要修改一些。

如果我控制台日志链接,我会得到一个包含 100 多个 a 元素的 HTMLCollection。如果我控制台日志 links.length,它是 0。

我已经尝试了所有能找到的方法将其转换为数组,但没有任何效果。

Array.from(links)

Array.prototype.slice.call(links)

[].forEach.call(links, function (el) {...});

HTMLCollection.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];

HTMLCollection.prototype.forEach = Array.prototype.forEach;

这些都会产生一个空数组。

另外var links = document.querySelectorAll('a');生成一个空的 NodeList。

我已经没有选择了。初始链接变量非常不为空。所以我不明白为什么所有这些建议的选项都不起作用。此外,jQuery 不是我们的选择。

Tho*_*der 6

Array.from(HTML_COLLECTION).forEach(function (element) {
  console.log(element);
});
Run Code Online (Sandbox Code Playgroud)