2012-02-19 18 views
0

は、私は一種の.EQ()関数はjQueryのにどのように動作するかを理解し、jqueryの警告.EQ()値

<ul> 
<li>item 2</li> 
<li>item 4</li> 
<li>item adf</li> 
<li>item f</li> 
</ul> 

$('ul').find('li').eq(3); //this gives item f 

しかし、私はアイテムのADFをクリックしたい場合、どのように私は2の警告を得るのですか。

$('ul li').click(function(){ 
alert('//getting eq value'); //and then when clicked, it should say 2 
}); 

おかげ

答えて

8

あなたはindex方法を探しています:

alert($(this).index()); 
ドキュメントから

引数が.index()メソッドに渡されていない場合、戻り値は、その兄弟要素に jQueryオブジェクトの相対内の最初の要素の位置を示す 整数です。

+0

はprevUntilでいくつかの魔法をするつもりだったが、あなたはよりよい解決策でそれを私にビート:) –

+0

@AlexanderVarwijk - それは素晴らしい点の一つですjQuery - しばしば素晴らしいシンプルなソリューションです! –

+0

が完璧です。ありがとう! – hellomello

0

クリックされた要素のインデックスを取得するには、クリックされた要素を選択するためのセレクタとしてthisを使用して、要素のインデックスを取得するには、インデックス()メソッドができます。

$("ul li").click(function(){ 
    alert($(this).index()); 
}); 
+0

アポストロフィにアポストロフィを付ける理由は何ですか? –

+0

@Adam質問が編集されました。私が答えを書いたときに、セレクターを囲む引用符もアポストロフィもありませんでした。 –

+0

オハイオ州大丈夫、私は一度も分からなかったことがあったと思った。 –

0

上記の解決策は、リストが長い場合は機能しません。 index()は相対値を返し、より多くのリストタグが追加されると値が変化します。

次のように、あなたはおそらく、何かを行う必要があります -

$('ul li').click(function(){ 
    var currentListIndex = $('ul li').index(this); 
    alert(currentListIndex); 
}); 
+0

@andrewliu **また、これは冗長な質問です。ここで答えを見つけてください** - http://stackoverflow.com/questions/4849677/how-to-get-the-eq-value/24141707#24141707 – Swanidhi