使用 JavaScript 将 HTMLCollection 转换为数组

Posted

技术标签:

【中文标题】使用 JavaScript 将 HTMLCollection 转换为数组【英文标题】:Convert HTMLCollection to an array with JavaScript 【发布时间】:2021-09-19 02:03:21 【问题描述】:

我想获取所有带有“Box”类的 html 元素,然后该集合将其转换为数组,这样我就可以通过位置访问每个元素。

这是我编写的代码:

function BoxAppearence() 
    
    var BoxCollection = document.getElementsByClassName("Box");
    console.log(BoxCollection)
    var Box = BoxCollection.split("");
    console.log(Box)
    
    console.log(Box[12])


BoxAppearence();

【问题讨论】:

var BoxCollection = Array.from(document.getElementsByClassName("Box")); 应该做你想做的事 这是我的代码 rn: ``` function BoxAppearence() var Box = Array.from(document.getElementsByClassName("Box"));控制台.log(框); console.log(Box[12]); BoxAppearence(); ``` 但在控制台中显示:[] 和未定义 正如您在JSFiddle snippet 中看到的那样,它有效;你确定你提供了正确的类名(记住 javascript 是区分大小写的,“Box”与“box”不同)?您确定您的页面包含带有“框”class 的元素吗?您确定要在 DOM 完全加载后执行函数吗? 这能回答你的问题吗? Most efficient way to convert an HTMLCollection to an Array 【参考方案1】:

正如评论中提到的,您可以使用Array.from() 将您的 HTML 集合转换为数组。

无论如何,如果您将集合转换为数组的唯一原因是能够通过其索引/位置访问元素,正如您从下面的代码 sn-p 中看到的那样,您也可以使用 HTML 集合(尽管实际上您将使用对象“键”而不是索引)。

function BoxAppearence() 
  var BoxCollection = document.getElementsByClassName("Box");
  var BoxArray = Array.from(BoxCollection);
  
  console.log("### BoxCollection ###");
  console.log("Is 'BoxCollection' an array?", Array.isArray(BoxCollection));
  console.log(BoxCollection);
  console.log(BoxCollection[12])
  console.log('\n\n');
  console.log("### BoxArray ###");
  console.log("Is 'BoxArray' an array?", Array.isArray(BoxArray));
  console.log(BoxArray);
  console.log(BoxArray[12]);


BoxAppearence();
<div class="Box">box1</div>
<div class="Box">box2</div>
<div class="Box">box3</div>
<div class="Box">box4</div>
<div class="Box">box5</div>
<div class="Box">box6</div>
<div class="Box">box7</div>
<div class="Box">box8</div>
<div class="Box">box9</div>
<div class="Box">box10</div>
<div class="Box">box11</div>
<div class="Box">box12</div>
<div class="Box">box13</div>

【讨论】:

以上是关于使用 JavaScript 将 HTMLCollection 转换为数组的主要内容,如果未能解决你的问题,请参考以下文章

javascript 使用javascript将查询参数添加到URL

使用 JavaScript 将 JavaScript 代码添加到 HTML 页面

使用 Ajax 将 PHP 嵌入到 javascript 中,以便将 MySQL 数据存储在 javascript 对象中

使用 Javascript 将日期设置为 raddatepicker

如何使用 jquery/javascript 将文本插入 json [重复]

使用 javascript 将画布添加到页面