javascript - 如何将 HTMLCollection 转换为数组而不清空它?

标签 javascript html arrays dom

我正在尝试将 4 个 div 的 HTMLCollection 转换为数组,但我尝试的每种方法似乎都会导致数组被清空。

<div class="container">
        <div class="shape" id="one"></div>
        <div class="shape" id="two"></div>
        <div class="shape" id="three"></div>
        <div class="shape" id="four"></div>
</div>

我尝试过的方法 - 根据 this previous question :
var shapesHC = document.getElementsByClassName('shape');
//gives HTMLCollection

var shapesArrCall = [].slice.call(shapesHC);
// returns empty array

var shapesArrHC = Array.from(shapesHC);
// returns empty array

var shapesArrHCSpread = [...shapesHC];
// returns empty array

如果有人能指出我在这里出错的地方,我将不胜感激。

谢谢。

最佳答案

尝试使用这个:

setTimeout(() => {
    this.convertToArray();
});

convertToArray() {
    const shapesHC = document.getElementsByClassName('shape');
    const shapesArrHCSpread = [...(shapesHC as any)];
    console.log(shapesArrHCSpread);
}

关于javascript - 如何将 HTMLCollection 转换为数组而不清空它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153968/

相关文章:

javascript - 左浮动的 div 画廊

jquery - css + jQuery 下拉子菜单溢出

javascript - 使用 XML 根据用户定义的选项填充 HTML 页面

javascript - target _blank 打开后直接关闭

html - 在 flex 元素中垂直和水平居中 p

javascript - 我的管理面板中有引导侧边栏菜单,当我单击并获取链接时,有两个元素处于事件状态,如图所示,为什么?

arrays - Ada 动态分配数组中的数组在编译时无法初始化

javascript - 在 Javascript 中将递归函数的结果连接到数组中的最快方法是什么?

c - 数组名作为变量

javascript - 使用 VueJS 保持页面刷新