0

だから私はいくつかの子要素を持つdivを持っています、そして私がjQueryでそれを選択するとき、私はセレクター内でそれのインデックスを取得したいです

<div>
  <div class="red"></div>
  <div class="red"></div>
  <div class="red"></div>
  <div class="blue"></div>
  <div class="red"></div>
  <div class="blue"></div>
  <div class="blue"></div>
  <div class="red"></div>
</div>

つまり、メインdivの最後の要素が選択されているとしましょう。その上でindex()を呼び出すと、すべての子要素のうちインデックスが「7」であるため、「7」が返されます。しかし、他の「red」要素に基づいてインデックスを取得したいとしましょう。すべての「red」要素のうち5番目の要素であるため、目標は「4」の値を返すことです。ドキュメントを調べても多くは見つかりませんでした。次に、index('。red')のようなindex()メソッドにセレクターを配置してみましたが、何も機能しませんでした。

4

4 に答える 4

2

まあ、ドキュメントは言う:

.index( element )
element検索するjQueryオブジェクト内のDOM要素または最初の要素。

だからできる:

selectedElements.filter('.red').index(this);

まだ持っていない場合はselectedElements、次のように対応する兄弟を選択できます。

$(this).parent().children('.red')

すべての要素にクラスが1つしかない場合、フィルターは動的にすることができます。

var index = $(this).parent().children('.' + this.className).index(this); 
于 2012-06-18T02:11:29.833 に答える
1

親としてid=testを使用してそれらすべてを実行する

デモ:http://jsfiddle.net/T7fXR/

$('#test > div').each(function(){
    var thisClass=$(this).attr('class');
    $(this).css('background',thisClass );
    /* get index based on class*/
    var idx=$('.'+thisClass).index(this);
    $(this).text('Index= '+idx)

})
于 2012-06-18T02:17:37.273 に答える
1

ここ.index()に記載されている機能を使用してください

上記の場合、redクラスの要素のインデックスを取得する場合は、$('div .red').index(elem);

$('div .red)div内の赤いクラスを持つ要素のリストを作成します。配列内.index(elem)を検索します。elem

于 2012-06-18T02:11:42.080 に答える
0

私にとって、これはあなたの与えられたHTMLでうまく機能します:

$('div').eq(5)​​​​​​​​​​.index('.red') // 3

関数にセレクターを配置でき.index()ます。

于 2012-06-18T02:12:04.430 に答える