2009-07-27 27 views
30

Khi một trong các div bên trong 'uploadChoice' được nhấp vào, làm thế nào tôi có thể xác định được cái nào được nhấp? Tôi có thể trả lại giá trị 'eq' bằng cách nào đó không?Trong Jquery làm thế nào để bạn tìm ra 'eq' của một yếu tố của những gì đang được nhấp?

<div id=uploadChoice> 
    <div>Text</div> 
    <div>Image</div< 
    <div>Text & Image</div> 
</div> 



$("#uploadChoice div").click(function(){ 
    //insert code here! :) 
}); 

Trả lời

59
$('#uploadChoice div').click(function(event) { 
    var index = $(this).index(); 
}); 
+1

đánh dấu hàng đầu bạn tôi! :) – Stephen

+1

Quá đơn giản. Cảm ơn một tấn! –

0

Bạn có thể nhận được các nội dung của div với

$("#uploadChoice div").click(function(){ 
    var choice = $(this).html; 
} 

Và sau đó chỉ cần làm một câu lệnh switch hoặc một số ifs lồng nhau.

Cá nhân, tôi sẽ thêm ID cho từng div và chỉ cần kiểm tra ID của phần tử được nhấp.

+0

Tôi có thể hỏi tại sao điều này bị bỏ phiếu không? Nó chắc chắn sẽ chăm sóc những gì các poster ban đầu đã được yêu cầu. Trong thực tế, nó cung cấp hai tùy chọn để xác định tùy chọn mà người dùng đã nhấp vào. Ngoài ra, giải pháp này sẽ cho phép người dùng sắp xếp lại các nút mà không phải thay đổi bất kỳ mã nào vì nó sử dụng giá trị (hoặc ID) của các nút thay vì vị trí tương đối của chúng. – idrumgood

+0

Ah, tôi nghĩ tôi hiểu. OP đã tìm kiếm một cách cụ thể để làm điều này bằng cách sử dụng 'eq', vì vậy các giải pháp của tôi không thỏa mãn điều đó. Đừng bận tâm. – idrumgood

5

Một thay thế dễ dàng hơn mà không cần sao chép một selector là sau

$('#uploadChoice div').click(function(event) { 
    var index = $(this).prevAll().length; 
}); 
+0

Rất tuyệt! Đáng buồn là tôi sẽ để lại brianng các nhãn hiệu như ông đã cho tôi nhanh hơn :) Cảm ơn sự giúp đỡ! – Stephen

+0

Các nhãn hiệu là giải pháp tốt nhất. Không nhanh nhất :) Hãy tưởng tượng bạn đến đây qua google. Bạn muốn xem câu trả lời nào! – redsquare

+0

Chắc chắn brianng bây giờ bạn đã nói điều đó;) :) – Stephen

2

Bạn có thể thêm selectors là tốt, và vượt qua "$ (this)" như là đối số:

$(document).on('click', 'button.testbutton', function() { 
 
    
 
    var index = $('div.example > div.xyz').find('button.testbutton').index($(this)); 
 

 
});

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