Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有jquery的情况下查找集合中元素的索引_Javascript_Arrays_Dom_Indexing - Fatal编程技术网

Javascript 如何在没有jquery的情况下查找集合中元素的索引

Javascript 如何在没有jquery的情况下查找集合中元素的索引,javascript,arrays,dom,indexing,Javascript,Arrays,Dom,Indexing,我有一个div中的元素集合 让我们说: <div> <p id="one">one</p> <p id="two">two</p> <p id="three">three</p> <p id="four">four</p> </div> 这应该返回一个值为2的整数,因为该元素是第三个 我知道jquery中有类似的东西,但我喜欢纯js。您可以使用数组对象的内置i

我有一个div中的元素集合

让我们说:

<div>
  <p id="one">one</p>
  <p id="two">two</p>
  <p id="three">three</p>
  <p id="four">four</p>
</div>
这应该返回一个值为2的整数,因为该元素是第三个


我知道jquery中有类似的东西,但我喜欢纯js。您可以使用数组对象的内置
indexOf
属性,如下所示:

 var child_element  = document.getElementById('three');
 var parent_element = child_element.parentNode;
 var i = Array.prototype.indexOf.call(parent_element.children, child_element);

可以使用数组对象的内置
indexOf
属性,如下所示:

 var child_element  = document.getElementById('three');
 var parent_element = child_element.parentNode;
 var i = Array.prototype.indexOf.call(parent_element.children, child_element);

您需要执行
parent\u元素。children
这不起作用,我们正在选择子元素,因为它具有唯一的ID,而且我们已经在使用选择器了。代码应该可以正常工作。嗯,你试过了吗?因为它返回
-1
而不返回
。children
请参阅Good call Amir,感谢您的修复。您需要执行
parent\u元素。children
这不起作用,我们正在选择子项,因为它具有唯一的ID,而且我们已经在使用选择器。代码应该可以正常工作。嗯,你试过了吗?因为它返回
-1
而不返回
。儿童
请参阅Good call Amir,感谢您的修复。