indexOf() 函数不适用于数组

indexOf() function not working on arrays

我有两个 div 如下所示:

<div class="container"></div>
<div class="container"></div>

我使用这两个 div 创建了一个数组:

var containers = document.querySelectorAll(".container");

我还创建了一个变量来表示第一个 div:

var div1 = document.querySelectorAll(".container")[0];

当我使用indexOf()获取数组中第一个div的索引时,出现错误:

containers.indexOf is not a function

这里是一个总结我的问题的片段:

var containers = document.querySelectorAll(".container");
var div1 = document.querySelectorAll(".container")[0];
containers.indexOf(div1); // returns the error
<div class="container"></div>
<div class="container"></div>

querySelectorAll returns 一个 NodeList,不是数组。您可以通过调用 Array.from(...).

将 NodeList 转换为数组

查询所有returns个非活节点列表。 indexOf 方法没有在上面定义。更多信息在这里

https://developer.mozilla.org/en-US/docs/Web/API/NodeList

您可以使用 Array.from() 转换为数组,然后使用 indexOf