indexOf() 函数在数组上不起作用



我有两个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 不是一个函数

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

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返回一个NodeList,而不是一个数组。您可以通过调用Array.from(...)将节点列表转换为数组。

Queryselectorall 返回非活动节点列表。indexOf 方法不是在此基础上定义的。更多信息在这里

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

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

最新更新