我有两个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