1

jQueryコレクションで特定の要素の位置を見つける必要があります。

たとえば、要素のコレクションでは、「アクティブ」クラスを持つ要素の数値位置を知る必要があります。

<ul>
    <li><a href="#"></a></li>
    <li><a class="active" href="#"></a></li>
    <li><a href="#"></a></li>
</ul>

インデックスを使用するのが道だと思いましたが、アクティブな場所に関係なく、以下は0を返します。

$('ul li a').index('.active');

これを行う簡単な方法はありますか?

4

5 に答える 5

6

これを試して:

$('ul li a.active').index();

正しい構文を使用しても、liタグ内にはアンカーリンクが1つしかないため、このコードは常に返さ0れることに注意してください。代わりに、親li要素のインデックスを見つけることができます。

$('ul li:has(a.active)').index();
于 2012-09-14T19:00:13.133 に答える
4

試す:

$('ul li a').each(function(i) {
    if ($(this).hasClass('active')) console.log(i);
});​

jsFiddleの例

または

console.log ($('ul li:has(a.active)').index() );​
于 2012-09-14T19:00:22.243 に答える
0

これは行う必要があります:

 $('ul li a').index($('ul li a.active'));

DOM要素またはjQueryオブジェクトを渡すindexと、元のコレクション内のその要素/オブジェクトの位置が返されます。

完全を期すためのjsfiddle

于 2012-09-14T19:05:40.723 に答える
0

どうですか:

$('li').index($('.active').parent())
于 2012-09-14T19:18:51.997 に答える
-1

$( "ul li a")。each(function(i){

if($(this).hasClass("active")){
 alert(i)        
}

}); </ p>

私はそれがあなたの問題を解決することを願っています

于 2012-09-14T19:03:27.297 に答える