Wie lösche ich mit jQuery alle Zeilen in einer Tabelle mit Ausnahme der ersten? Dies ist mein erster Versuch, Indexselektoren zu verwenden. Wenn ich die Beispiele richtig verstehe, sollte Folgendes funktionieren:
$(some table selector).remove("tr:gt(0)");
Dies würde ich als "Wickeln Sie eine Tabelle in ein jQuery-Objekt ein und entfernen Sie dann alle 'tr'-Elemente (Zeilen), bei denen der Elementindex solcher Zeilen größer als Null ist" lesen. In Wirklichkeit wird es ohne Fehler ausgeführt, entfernt jedoch keine Zeilen aus der Tabelle.
Was fehlt mir und wie behebe ich das? Natürlich könnte ich auch nur Javascript verwenden, aber ich habe so viel Spaß mit jQuery, dass ich dies gerne mit jQuery lösen möchte.
jquery
jquery-selectors
Ken Paul
quelle
quelle
Antworten:
Das sollte funktionieren:
quelle
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.
Ich würde empfehlen, $ ("# mytable> tr") zu verwenden. Slice (1) .remove ();Ich denke, dies ist in Anbetracht der Absicht besser lesbar:
Die Verwendung von Kindern kümmert sich auch um den Fall, dass die erste Zeile eine Tabelle enthält, indem die Suchtiefe begrenzt wird.
Wenn Sie ein TBODY-Element hatten, können Sie dies tun:
Wenn Sie THEAD- oder TFOOT-Elemente haben, müssen Sie etwas anderes tun.
quelle
$('someTableSelector > tbody:last > tr:not(:first)').remove();
$("#tasks").children().remove();
Eine andere Möglichkeit, dies zu erreichen, ist die Verwendung der Funktion empty () von jQuery mit den Elementen thead und tbody in Ihrer Tabelle.
Beispiel einer Tabelle:
Und der Befehl jQuery:
Dadurch werden alle im tbody-Element Ihrer Tabelle enthaltenen Zeilen entfernt und das thead-Element dort belassen, wo sich Ihre Kopfzeile befinden sollte. Dies kann nützlich sein, wenn Sie nur den Inhalt einer Tabelle aktualisieren möchten.
quelle
Wenn ich es wäre, würde ich es wahrscheinlich auf einen einzigen Selektor reduzieren:
quelle
Ihr Selektor muss sich nicht in Ihrer Entfernung befinden.
Es sollte ungefähr so aussehen:
Dies bedeutet, dass Sie jede Zeile mit Ausnahme der ersten in der Tabelle mit der ID tableID auswählen und aus dem DOM entfernen.
quelle
Ich erinnere mich, dass ich auf dieses „Slice“ gestoßen bin, das schneller ist als alle anderen Ansätze.
quelle
gt
veraltet ist, ist dies die beste Antwort.Stellen Sie sich eine Tabelle mit der ID vor
tbl
: Der jQuery-Code lautet:quelle
Verwenden Sie den folgenden Code, um alle Zeilen außer der ersten (außer der Kopfzeile) zu entfernen:
$("#dataTable tr:gt(1)").remove();
quelle
Einfachster Weg :
-verweisen Sie zuerst auf die Tabelle
-get der Liste der Elemente und schneiden Sie sie und entfernen Sie die ausgewählten Elemente der Liste
quelle
-Schade, das ist eine sehr späte Antwort.
Der einfachste Weg, eine Zeile (und alle anderen Zeilen durch Iteration) zu löschen, ist dieser
$ ('# rowid', '# tableid'). remove ();
Der Rest ist einfach.
quelle
quelle
in eine Funktion eingewickelt:
dann nenne es:
quelle
Das funktioniert perfekt
quelle
Dies funktionierte in meinem Fall folgendermaßen und funktionierte einwandfrei
quelle