2012-07-05 10 views
11

Widziałem wiele pytań o to, jak wybierać wszystkie oprócz pierwszego i ostatniego wiersza tabeli, ale chcę wiedzieć, jak wybrać wszystko z wyjątkiem pierwszych dwóch wierszy i ostatniego. Teraz mam to, aby wybrać wszystkie oprócz dwóch pierwszych:Jak usunąć wszystkie wiersze ze stołu z wyjątkiem pierwszych dwóch i ostatnich?

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

i potrzebuję jakiś sposób, aby uzyskać również ostatni. Może jakiś sposób na połączenie z

:not(:last) 

?

Jestem całkiem nowy w jQuery i każda pomoc byłaby doceniana.

Odpowiedz

12

Wystarczy połączyć selektorów:

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

JSFiddle

+0

Dlatego zaczynam kochać jQuery: odpowiedź jest często tak proste i intuicyjne. Dzięki, zadziałało idealnie! – cnhe

+0

Bez problemu. I prawie zawsze można odczytać te selektory jako zdanie: "znajdź wszystkie" tr ", które są po drugim (1 + 1, od zera), które nie są ostatnim dzieckiem swojego rodzica." –

20

To jest to, czego potrzebujesz:

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

DEMO

jsperf z moje i @Evan „s rozwiązań.

enter image description here

+0

Dziękuję, to działa również. – cnhe

+0

@ cnhe przez 'slice' jest około 5 razy szybszy niż przez' 'tr: gt (1): nie (: ostatni)' 'selector.So rozsądnie, jeśli używasz 'slice' może być bardziej wygodnym, niż użycie selektora . – Engineer

Powiązane problemy