Trong một bảng có một số hàng bị ẩn, tôi muốn có hàng hiển thị tiếp theo, nếu có hàng. Việc này sẽ thực hiện công việc:Hiệu quả tìm hàng tiếp theo có thể nhìn thấy trong bảng với jQuery
row = $(selectedRow).nextAll(':visible');
if ($(row).length > 0)
selectedRow = row;
nhưng rất chậm khi nhiều hàng theo hàng được chọn. Một cách tiếp cận theo kịch bản là:
var row = $(selectedRow).next();
while ($(row).length > 0 && !$(row).is(':visible'))
row = $(row).next();
if ($(row).length > 0)
selectedRow = row;
Điều này nhanh hơn nhiều, nhưng có một cách tiếp cận tất cả jQuery thanh lịch mà tôi có thể sử dụng.
Cảm ơn bạn đã trả lời. Vấn đề là $ (selectedRow) .next (': visible') đầu tiên áp dụng .next() và sau đó cung cấp cho tôi hàng tiếp theo nếu nó hiển thị. Nếu nó không nhìn thấy được, tôi chẳng nhận được gì cả. –
Đã cập nhật câu trả lời. – Blazemonger
Cảm ơn bạn đã dành thời gian trả lời. Không biết về nextUntil(). Tôi đã thử những gì bạn đề nghị, nhưng nó không làm việc cho tôi vì nextUntil() trả về một tập rỗng nếu không có hàng không nhìn thấy được giữa hàng đã chọn và hàng hiển thị tiếp theo, và .next dường như được áp dụng cho bộ trống. Nhưng hướng dẫn của bạn đưa tôi đến một cái gì đó tốt hơn so với những gì tôi đã có, mà tôi sẽ đăng như là một câu trả lời cho câu hỏi của riêng tôi. –