2012-04-18 13 views
5

Jak usunąć wszystkie klasy div z wyjątkiem ostatnich 2 przy użyciu jquery?Jak usunąć wszystkie klasy div z wyjątkiem ostatnich 2 przy użyciu jquery?

Mam zestaw komentarzy wyświetlanych w klasie .comment. Po kliknięciu wszystkich komentarzy, lista wszystkich komentarzy dla konkretnego mikropostu jest pokazywana przed ostatnimi 2 ostatnio pokazywanymi domyślnie.

Jeśli kiedykolwiek użytkownik wpisze komentarz przed kliknięciem, aby zobaczyć wszystkie komentarze, ten komentarz zostanie dodany do listy, a teraz pojawiają się 3 ostatnie komentarze. Ze względu na sposób, w jaki ustawiłem kod zwrotny, powoduje on, że najmniejszy najnowszy komentarz zostanie wyświetlony dwa razy po kliknięciu łącza Pokaż wszystko.

Nie trzeba wchodzić w szczegóły, ale to, co postanowiłem zrobić, to policzyć całkowitą liczbę div i od całości usunąć wszystkie elementy div, ale 2 (ostatnie 2 na liście, które są najnowsze).

Jak mogę to osiągnąć za pomocą jquery?

poważaniem

Odpowiedz

7

Zastosowanie slice() (i kredyt do @Felix Kling do aktualizacji):

$(".comment_container").slice(0, -2).remove(); 

Jednak biorąc pod uwagę Twój opis problemu to nie brzmi jak najlepszego sposobu działania . Być może warto zacząć nowe pytanie o problem, który masz z komentarzami, z pewnymi szczegółami na temat twojego kodu.

Więcej informacji na temat slice().

+0

Lub po prostu '.slice (0, -2)' (po sprawdzeniu, że wybrano więcej niż "n" elementów). –

+1

@FelixKling Dzięki - nigdy nie zdawałem sobie sprawy, że możesz to zrobić! Może powinienem przeczytać dokumentację jeszcze bardziej! –

+0

Idealne rozwiązanie dla mojej sytuacji. Dzięki – LondonGuy

0

Czy dwa ostatnie elementy div, które nie chcesz dołączyć, mają identyfikatory?

wierzę można użyć jQuery .not() usunąć dwa ostatnie div po wybraniu jesteś wyboru coś takiego

$('.comment_container').not('#lastDiv, #lastButone')

Wtedy można pokazać wszystkie komentarze, ale nie te, 2.

więcej informacji na temat .not()

Powiązane problemy