使用本机Javascript中的类查找元素的索引

Dav*_*vid 3 javascript indexing class

有没有办法获取类名的索引(即类"className"的第三个元素是3而不使用jQ?

我不知道jQ,我现在没时间学习它,我不想在代码中包含我至少不了解的代码.

谢谢.

顺便说一下,我使用了jQ而不是拼写出来,所以如果有人有同样的问题,这些结果可以在Google中过滤掉.如果我拼写出来,并且有人在Google中使用了NOT运算符,那么这个运算符也会消失.

ZER*_*ER0 11

你可以这样做:

// the element you're looking for
var target = document.getElementById("an-element");

// the collection you're looking in
var nodes = document.querySelectorAll(".yourclass");

var index = [].indexOf.call(nodes, target);
Run Code Online (Sandbox Code Playgroud)

请参阅:Array的indexOf.如果您已经有一个正确的数组nodes而不是NodeList,那么您可以这样做nodes.indexOf(target).


Sat*_*nix 5

您可以使用document.getElementsByClassName

var el = document.getElementsByClassName('className');
for (var i = 0; i < el.length; i++) {
   // your index is inside here
}
Run Code Online (Sandbox Code Playgroud)

el[i]是当前迭代中的元素,i是索引

(即类"className"的第三个元素是3)

if (i == 3)
return el[i]
Run Code Online (Sandbox Code Playgroud)

JsFiddle:在这里.