Za pomocą jQuery, jak usunąć wszystkie wiersze w tabeli oprócz pierwszego? To moja pierwsza próba użycia selektorów indeksu. Jeśli dobrze rozumiem przykłady, następujące działania powinny działać:
$(some table selector).remove("tr:gt(0)");
który przeczytałbym jako „Zawiń tabelę w obiekt jQuery, a następnie usuń wszystkie elementy (wiersze)„ tr ”, gdzie indeks takich wierszy jest większy od zera”. W rzeczywistości wykonuje się bez generowania błędu, ale nie usuwa żadnych wierszy z tabeli.
Czego mi brakuje i jak to naprawić? Oczywiście, mógłbym użyć prostego javascript, ale tak dobrze się bawię z jQuery, że chciałbym rozwiązać to za pomocą jQuery.
jquery
jquery-selectors
Ken Paul
źródło
źródło
Odpowiedzi:
To powinno działać:
źródło
Because :gt() is a jQuery extension and not part of the CSS specification, queries using :gt() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").slice(index) instead.
Poleciłbym użycie $ ("# mytable> tr"). Slice (1) .remove ();Myślę, że jest to bardziej czytelne, biorąc pod uwagę zamiar:
Korzystanie z dzieci dba również o przypadek, w którym pierwszy wiersz zawiera tabelę, ograniczając głębokość wyszukiwania.
Jeśli masz element TBODY, możesz to zrobić:
Jeśli masz elementy THEAD lub TFOOT, musisz zrobić coś innego.
źródło
$('someTableSelector > tbody:last > tr:not(:first)').remove();
$("#tasks").children().remove();
Innym sposobem na osiągnięcie tego jest użycie funkcji pustej () jQuery z elementami thead i tbody w tabeli.
Przykład tabeli:
I polecenie jQuery:
Spowoduje to usunięcie wszystkich wierszy zawartych w elemencie tbody tabeli i zachowanie elementu thead w miejscu, w którym powinien znajdować się nagłówek. Może być przydatny, gdy chcesz odświeżyć tylko zawartość tabeli.
źródło
Gdybym to był ja, prawdopodobnie sprowadziłbym to do jednego selektora:
źródło
Twój selektor nie musi znajdować się w środku Twojego usunięcia.
Powinien wyglądać mniej więcej tak:
Co oznacza, że zaznacz każdy wiersz oprócz pierwszego w tabeli o identyfikatorze tableID i usuń je z DOM.
źródło
Pamiętam, że natknięcie się na ten „kawałek” jest szybsze niż wszystkie inne podejścia, więc po prostu go tutaj umieść.
źródło
gt
jest przestarzałe, to najlepsza odpowiedź.Rozważmy tabelę o id
tbl
: kod jQuery będzie:źródło
Aby usunąć wszystkie wiersze oprócz pierwszego (oprócz nagłówka), użyj poniższego kodu:
$("#dataTable tr:gt(1)").remove();
źródło
Najprostszy sposób :
-pierwsze odwołanie do tabeli
-zbierz listę elementów i pokrój ją i usuń wybrane elementy z listy
źródło
- Przepraszam, to jest bardzo późna odpowiedź.
Najłatwiejszy sposób, jaki udało mi się usunąć dowolny wiersz (i wszystkie inne wiersze poprzez iterację) to
$ ('# rowid', '# tableid'). remove ();
Reszta jest łatwa.
źródło
źródło
zawinięte w funkcję:
nazwij to:
źródło
To działa idealnie
źródło
W moim przypadku działało to w następujący sposób i działało dobrze
źródło