2009-08-15 32 views
6

Tôi có thể lấy hàng hiện tại bằng mã này. "Đây" là một liên kết trong một ô bảng trong hàng.jquery - chuyển đến hàng tiếp theo của bảng dựa trên tên lớp từ vị trí hàng hiện tại?

$currentTR = $(this).parents('tr'); 

Hai dòng tiếp theo có thể làm tương tự, lấy dấu sau hàng hiện tại.

$nextTR = $(this).parents('tr').next(); 
$nextTR = $(this).parents('tr').next('tr'); 

Nếu tôi ra $nextTR.html() tôi thấy những gì tôi mong đợi

Tôi không biết có bao nhiêu hàng tôi cần phải đi để có được hàng đúng trừ bởi tên lớp và làm nó như thế này không làm việc cho tôi.

$nextTR = $(this).parents('tr').next('.concept'); 
$nextTR = $(this).parents('tr').next('tr .concept'); 

Tất cả tôi nhận được là null

Ví dụ trên docs.Jquery link text sử dụng này

$("p").next(".selected").css("background", "yellow"); 

tôi thiếu gì ở đây?

+0

Các .next () lọc các anh chị em . Nếu anh chị em phù hợp với bộ chọn nó được giữ; nếu không nó được lọc ra. Trong trường hợp của bạn, điều này có nghĩa là nếu người anh em tiếp theo của tr là lớp khái niệm, nó được trả về, nếu không bạn sẽ nhận được một null. – Zed

+0

Tôi hiểu ý của bạn là gì, duh Tôi vẫn đang cố gắng để có được hàng NEXT! – Breadtruck

Trả lời

11

Cho nextAll một shot.

+5

Crap, tôi sẽ đưa ra một giải pháp ưa thích bằng cách sử dụng hàm 'index' mới, nhưng' $ (this) .closest ('tr'). NextAll ('tr.concept') .qq (0) có vẻ như người chiến thắng'. :) – hobbs

+0

Vì vậy, điều này có ý nghĩa.Có nextAll đi đến dưới cùng của trang từ vị trí hiện tại và sau đó bắt đầu trở lại ở đầu của dom và trở lại vị trí bắt đầu, và đó là bao nhiêu yếu tố được trả lại? – Breadtruck

+0

@Breadtruck - no. Trong ví dụ của bạn nextAll trả về tất cả các hàng sau hàng "hiện tại". –

0

Bạn muốn nhận bản tiếp theo thuộc một lớp nhất định?

Bạn có thể thử thực hiện .next() và sau đó kiểm tra lớp học?

Tôi hơi bối rối về câu hỏi của bạn, tôi sẽ thừa nhận, bởi vì bạn dường như đã cung cấp câu trả lời của riêng bạn ...

1

tôi đã cố gắng để tái html + javascript at jsbin của bạn và tôi có thể tạo lại vấn đề:

siblings() trả về tất cả 4 dòng, và tôi có thể thấy rằng hai trong số các hàng có class="concept", nhưng next('.concept') không trả lại bất cứ điều gì .

Không phải là kế tiếp() phải là một tập con của anh chị em()?


cảm ơn nhận xét, giờ tôi đã hiểu! Tôi cần silbings, không phải tiếp theo.

+0

tiếp theo chỉ trả về phần tử tiếp theo. Nếu bộ chọn bạn gửi vào cuộc gọi của bạn đến lần tiếp theo không khớp với phần tử tiếp theo, tập hợp kết quả của bạn sẽ trống. –

0

Chúng ta hãy giả sử rằng, bạn có HTML một cái gì đó như dưới đây:

HTML:

<tr class="current_tr"> <!-- This is your current tr --> 
... 
..... 
... 
</tr> 

<tr class="nextRowClass"> <!-- You need to find this tr with the class--> 
... 
..... 
... 
</tr> 

JS:

var current_row = $('tr.current_tr'); 
//You can get next row with the class as below 
var next_row_with_class = $(current_row).next("tr.nextRowClass"); 
Các vấn đề liên quan