4

クラス名のインデックスを取得する方法はありますか (つまり、クラス「className」の 3 番目の要素は、jQ を使用せずに 3 になりますか?

私は jQ を知りませんし、今はそれを学ぶ時間もありません。また、少なくともいくつかは理解していないコードを自分のコードに含めたくありません。

ありがとう。

ところで、スペルアウトする代わりに jQ を使用したので、誰かが同じ質問をした場合に Google でそれらの結果を除外できます。私がそれを綴り、誰かが Google で NOT 演算子を使用した場合、これも消えてしまいます。

4

4 に答える 4

18

次のようなことができます。

// 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);

参照:配列の indexOf。NodeList の代わりに適切な配列が既にある場合は、そのままnodes実行できますnodes.indexOf(target)

于 2013-11-05T08:30:18.977 に答える
6

document.getElementsByClassNameを使用できます

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

el[i]は現在の繰り返しの要素、iはインデックスです

(つまり、クラス「className」の 3 番目の要素は 3 になります)

if (i == 3)
return el[i]

JsFiddle:こちら.

于 2013-11-05T08:23:21.640 に答える
0

を使用するだけgetElementsByClassNameで、指定されたクラスを持つ要素のリストが返されます。

elements = document.getElementsByClassName("test")
element = elements[2] //get the 3rd element

お役に立てれば!

于 2013-11-05T08:25:43.483 に答える