2012-07-05 49 views
11

Tôi đã nhìn thấy rất nhiều câu hỏi về cách chọn tất cả trừ các hàng đầu tiên và cuối cùng của một bảng, nhưng tôi muốn biết cách chọn tất cả mọi thứ ngoại trừ các hàng HAI đầu tiên và cuối cùng. Ngay bây giờ, tôi có điều này để chọn tất cả trừ hai trường hợp đầu tiên:Làm thế nào để loại bỏ tất cả các hàng từ một bảng trừ hai đầu tiên và cuối cùng?

$("#sometable").find("tr:gt(1)").remove(); 

và tôi cũng cần một số cách để có cái cuối cùng. Có thể một số cách để kết hợp với

:not(:last) 

?

Tôi khá mới đối với jQuery và mọi trợ giúp sẽ được đánh giá cao.

Trả lời

12

Chỉ cần kết hợp các selectors:

$("#sometable").find("tr:gt(1):not(:last)").remove(); 

JSFiddle

+0

Đây là lý do tại sao tôi bắt đầu yêu thích: câu trả lời thường rất dễ dàng và trực quan. Cảm ơn, nó hoạt động hoàn hảo! – cnhe

+0

Không sao cả. Và bạn hầu như luôn có thể đọc những bộ chọn này dưới dạng một câu: "tìm tất cả' tr' nằm sau con thứ hai (1 + 1, kể từ số không dựa trên) của nó không phải là con cuối của cha mẹ. " –

20

Đây là những gì bạn cần:

$("#sometable").find('tr').slice(2,-1).remove() 

DEMO

jsperf các giải pháp của tôi và @Evan 's.

enter image description here

+0

Cảm ơn bạn, tính năng này cũng hoạt động tốt. – cnhe

+0

@cnhe bởi 'slice' nhanh hơn gấp 5 lần, so với '' tr: gt (1): không phải (: cuối cùng)' 'selector. Có lẽ, khi bạn sử dụng 'slice' có thể thuận lợi hơn là sử dụng bộ chọn . – Engineer

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