indexOf()函数不在数组上工作

时间:2017-07-07 00:42:07

标签: javascript html arrays dom 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不是函数

以下是一个摘要我的问题的摘录:

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

2 个答案:

答案 0 :(得分:4)

querySelectorAll返回 NodeList ,而不是数组。您可以通过调用Array.from(...)将NodeList转换为数组。

答案 1 :(得分:2)

Queryselectorall返回非实时节点列表。 indexOf方法没有定义。更多信息在这里

  

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

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