jQuery セット内の要素の場所を取得しようとしています。
私はこのようなことができるようにしたい:
$('ul').find('a').indexOf('.active');
.active
のセット内のの位置を取得しますa
。
indexOf()
jQueryの関数のようなものはありますか? メソッドindex()
が機能しない
jQuery セット内の要素の場所を取得しようとしています。
私はこのようなことができるようにしたい:
$('ul').find('a').indexOf('.active');
.active
のセット内のの位置を取得しますa
。
indexOf()
jQueryの関数のようなものはありますか? メソッドindex()
が機能しない
$searchFor
jQuery set( ) を引数としてindex
別の jQuery set( ) のメソッドに渡すと、$searchIn
つまり
$searchIn.index($searchFor)
$searchFor
セット内のインデックスを返します$searchIn
あなたの例では:
$('ul a').index($('ul a.active'));
</p>
あなたのロジックは健全です。間違った要素を取得しているだけです: http://jsfiddle.net/xz9dW/19/
var index = $('ul a.active').closest('li').index();
兄弟がないため、リンクには値がありませんa
。index()
あなたはつかまなければなりませんli
index
関数に jQuery オブジェクトを与えるだけです。
var elements = $('ul a');
var index = elements.index(elements.filter('.active')); // 2
alert(index);
ライブデモ </p>
すぐに使えるそのような機能はありません。次のように簡単に実行できます。
var index = -1;
$('ul a').each(function(i){
if ($(this).hasClass('active')){
index = i;
return false;
}
});
alert(index);
これは、セレクターで要求するだけで実行できます。
$('ul a.active')
しかし、場所を取得するとはどういう意味ですか? ポジションっていうんですか?またはURL?
どちらを使用しているかを知りたい場合は、イベント関数内でclick
使用します。クラス$(this)
に複数の要素がある場合、クリックした要素の現在の位置を返す例を次に示します。.active
位置を取得するには:
$('ul a.active').click(function(){
alert( $(this).position() );
})
URL の場所を取得するには:
$('ul a.active').click(function(){
alert( $(this).attr('href') );
})