Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将HTMLCollection转换为数组,而不清空它?_Javascript_Html_Arrays_Dom - Fatal编程技术网

Javascript 如何将HTMLCollection转换为数组,而不清空它?

Javascript 如何将HTMLCollection转换为数组,而不清空它?,javascript,html,arrays,dom,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&

我试图将一个包含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>
如果有人能指出我的错误,我将不胜感激

谢谢。

尝试使用以下方法:

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

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

当我测试时,这三种方法都返回一个非空数组。也许您的问题在代码的其他地方?谢谢您的快速响应-这是我的全部代码。它只是一个html文件和一个js文件。代码中的JavaScript在哪里,在html的上面还是下面?如果它在你的HTML上面(在头部),那么这些元素在你的JavaScript运行之后才会被查询。阅读这个问题,看看它是否适用:是的,我的脚本标签在头部。现在我已经把它移到了身体的末端,效果很好。掌纹
setTimeout(() => {
    this.convertToArray();
});

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