此问题在此处已有答案:
Convert ES6 Iterable to Array(6个答案)
2天前关闭。
这篇文章是编辑和提交审查2天前。
我正在尝试开发一个可重用的 accordion 组件,我必须找到所有 accordion 项,这些项为我提供了HTMLCollection,它看起来像一个数组形式,但如果您尝试使用一些方法(如forEach
)进行操作,那么您将得到一个错误。
我正在寻找最简单和最优化的方法来解决这些问题,同时使用纯JavaScript。
代码示例:
HTML
<div classs="container">
<div id="accordion">
<div class="accordion-item">...</div>
<div class="accordion-item">...</div>
<div class="accordion-item">...</div>
</div>
</div>
JavaScript语言
var accordion_el = document.getElementById("accordionExample"),
accordion_items = document.getElementsByClassName("accordion-item");
// below code will give error
accordion_items.forEach(function (item) {
console.log(item);
});
我尝试使用toArray()
,但失败了。
对我有效的方法:
Array.from()
- 同样,
[...document.getElementsByClassName("accordion-item")]
也是如此
我有一个关于 * 最佳性能优化 * 的问题,如果一个页面上有同一组件的多个示例,那么DOM操作需要最少的时间。
1条答案
按热度按时间ckx4rj1h1#
可以使用扩展语法转换为数组。
但是,您可以在这里直接使用
document.querySelectorAll
,它返回一个具有forEach
方法的NodeList
。x一个一个一个一个x一个一个二个x