2011-01-31 17 views
15

これは可能ですか?私はeq()の価値を得るために?たとえば、li:eq(2)をクリックすると、x2になります。ここにコードがあります。eq()値の取得方法は?

$('#numbers ul li').click(function(){ 
    x=$(this).eq().val(); 
    alert(x); 
}); 

答えて

25

.index()what is this?方法は、それを行います。

$('#numbers ul li').click(function() { 
    var self = $(this), 
     index = self.index(), 
     text = self.text(); 

    alert(text + ' ' + index); 
}); 

デモhttp://www.jsfiddle.net/Y2aDP/

+0

ので、そのインデックス()、あなたにjAndyに感謝! – Ryan

+0

2つ以上のリストがある場合、インデックスは等価ではありません。 – NycCompSci

+1

厳密に言えば、index()はeq()と同じではありません。 index()は要素の実際のインデックスを返し、eq()セレクタはインデックスを操作して検索している要素のタイプをフィルタリングします。この[Demo](http://jsfiddle.net/vND37/)の例を参照してください。 – Emerson

5

上記の答えが間違っています。インデックスは、その兄弟に関して相対値を提供します。したがって、価値は変化すると予想されます。

それはこの1つを試してみてください

$('.someClass').click(function(){ 
    var that_ = this; 
    // your logic for this function 
    .... 
    .... 
    var currentIndex = $('.someClass').index(_that); 
}); 
0

のようなものでなければなりません。..

$('#numbers ul li').click(function(){ 
    var x=$(this).index(); 
    alert(x); 
}); 
0

eq<>インデックス:

scount=$(selector).length; 
for(i=0; i<scount; i++){ 
    $("selector:eq("+i+")").attr("eq",i); 
} 
$("selector").click(function(){ 
    alert($(this).attr("eq")); 
}); 
+1

もう少し説明してください。これはあまり明確ではありません。 –

関連する問題