2012-05-13 77 views
14
$('#button').click(function() { 
    alert($('.column').val()); 
}); 

Làm cách nào để nhận phần tử thứ nhất, thứ hai hoặc thứ ba trong .column?JQuery lấy phần tử thứ n của mảng

+0

Bạn muốn ý nghĩa nhất, nhì, HOẶC thứ ba bất kỳ của ba? Hay bạn muốn tất cả chúng? Và bạn đang đề cập đến ba phần tử với lớp '.column', hoặc ba phần tử * bên trong * một phần tử cha' .column'? – Sampson

Trả lời

26
$('#button').click(function() { 
    alert($('.column').eq(0).val()); // first element 
    alert($('.column').eq(1).val()); // second 
    alert($('.column').eq(2).val()); // third 
}); 
3

Sử dụng các Slice() chức năng: http://api.jquery.com/slice/

Xem câu hỏi: How to select a range of elements in jQuery

$('.column').slice(0, 2).each(function() { 
    $(this).val(); /* my value */ 
}); 
+0

Slice có thể làm điều đó, nhưng chức năng đó thực sự là lý tưởng cho việc lựa chọn một phạm vi nếu các chỉ số. Chắc chắn có một chức năng tối ưu để chọn một chỉ mục duy nhất? – Norse

+0

bạn có nghĩa là nth-child hoặc eq()? Bạn nói rằng bạn muốn 3 người đầu tiên, có lẽ tôi đã hiểu lầm nhưng điều đó có vẻ là định nghĩa của một loạt các chỉ số? – Jeff

6

Tôi thích chuỗi selector, vì vậy tôi thường làm điều này:

$('.column:eq(3)') // Fourth .column element 
+1

Tôi thích chúng hoàn toàn cho phong cách nhưng cần lưu ý rằng tài liệu jQuery đề xuất .eq() over: eq() cho hiệu suất trên các trình duyệt hiện đại: http://api.jquery.com/eq-selector/ – Jeff

1

Bạn có thể sử dụng :lt selector (ít hơn) và nói với nó bạn muốn 0, 1, and 2 bằng cách chỉ ra tất cả .column yếu tố dưới đây index 3:

$("#button").on("click", function(){ 
    $(".column:lt(3)").each(function(){ 
    alert(this.value); 
    }); 
}); 

Demo: http://jsbin.com/icevih/edit#javascript,html

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