gpt4 book ai didi

javascript - 遍历 NodeList

转载 作者:行者123 更新时间:2023-11-30 13:46:10 28 4
gpt4 key购买 nike

我正在寻找一种面向 future 的方法来遍历 NodeList(即来自 element.querySelectorAll(selector))以及跨浏览器兼容。以前我一直在使用 ES6 Spread 功能,但是 IE 不支持 spreading 所以我用了一个 shim 来代替它。我觉得这有点矫枉过正且效率低下。然后我遇到了 hack Array.prototype.forEach.call。它有效,但我觉得很臭。

遍历 NodeList 的最佳方法是什么?

我偏向于向后兼容和干净的气味代码,但如果您的回答也适用于以下任何其他标准,那将不胜感激。

  1. 可读性
  2. 面向 future
  3. 速度

我看过JavaScript iterate through NodeList ,其中介绍了几种方法。但是,无需担心可读性、兼容性等问题。只要它有效即可。

我遇到的一些方法是:

const elems = document.querySelectorAll('img');

[].forEach.call(elems, function (o) { console.log(o) });

[...elems].foreach(function (o) { console.log(o) });

for (var i = 0; i < elems.length; i++) {
console.log(elems[i]);
}

for (var i = elems.length - 1; i >= 0; i--) {
console.log(elems[i]);
}

// User-defined
var forEach = function (array, callback, scope) {
for (var i = 0; i < array.length; i++) {
callback.call(scope, i, array[i]);
}
};
forEach(elems, function (index, value) {
console.log(index, value);
});

最佳答案

我推荐使用 MDN 的 Array.from polyfill

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill

Array.from(nodeList).forEach(node => {})

关于javascript - 遍历 NodeList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291030/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com