2011-01-31 43 views
15

Điều này có thể không? Đối với tôi để có được giá trị eq()? Ví dụ: nếu tôi nhấp vào li:eq(2), var x sẽ trở thành 2. Đây là mã.Cách nhận giá trị eq()?

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

Trả lời

25

Phương pháp .index()what is this? sẽ làm điều đó.

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

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

Demo: http://www.jsfiddle.net/Y2aDP/

+0

nên chỉ số của nó(), cảm ơn bạn jAndy! – Ryan

+0

Chỉ số không bằng nhau khi bạn có nhiều hơn 1 danh sách. – NycCompSci

+1

Nói đúng, chỉ mục() không giống với eq(). index() cho bạn trở lại chỉ mục thực tế của phần tử, trong khi sử dụng bộ chọn eq() điều khiển các chỉ mục để lọc cho loại phần tử bạn đang tìm kiếm. Thanh toán [Demo] này (http://jsfiddle.net/vND37/) để biết ví dụ. – Emerson

5

Câu trả lời ở trên là sai. Index cung cấp một giá trị tương đối đối với các anh chị em của nó. Do đó, giá trị được kỳ vọng sẽ thay đổi.

Nó phải là một cái gì đó giống như

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

Hãy thử này ..

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

eq<> index:

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

Vui lòng giải thích thêm một chút. Điều này không rõ ràng lắm. –

Các vấn đề liên quan