2011-01-31 40 views
15

这可能吗?为了得到eq()值?例如,如果我单击li:eq(2),则变量x将变为2。这是代码。如何获得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 2011-01-31 10:26:30

+0

当您有多个列表时,索引不是等值的。 – NycCompSci 2011-09-15 03:33:34

5

上面的答案是错的。索引提供了一个相对于它的兄弟姐妹的相对值。因此,价值预计会改变。

它应该是这样的

$('.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")); 
});