Wie kann ich alle Zeilen einer HTML-Tabelle mit Ausnahme der Zeilen <th>
mit Javascript löschen , ohne alle Zeilen in der Tabelle zu durchlaufen? Ich habe eine sehr große Tabelle und möchte die Benutzeroberfläche nicht einfrieren, während ich die Zeilen durchlaufe, um sie zu löschen
javascript
html
html-table
K ''
quelle
quelle
removeChild
akzeptiert nur ein einziges DOM-Element.Antworten:
Behalten Sie die
<th>
Reihe in a<thead>
und die anderen Reihen in a bei<tbody>
und ersetzen Sie die<tbody>
durch eine neue, leere.dh
quelle
document.getElementById('tbody').innerHTML = '';
Dadurch werden alle Zeilen entfernt:
quelle
$("tbody#id tr").remove()
Sehr grob, aber das funktioniert auch:
quelle
<th>
in a verschachtelt sind<thead>
. Dies ist wahrscheinlich die syntaktisch korrekteste Methode, um die Tabelle zu erstellen.var bodyRef = document.getElementById('myTable').getElementsByTagName('tbody')[0];
bodyRef.innerHTML = '';
Dies ist eine alte Frage, aber ich hatte kürzlich ein ähnliches Problem.
Ich habe diesen Code geschrieben, um ihn zu lösen:
Dadurch werden alle Zeilen außer der ersten entfernt.
Prost!
quelle
Zu beachtende Punkte : Achten Sie auf häufige Fehler :
Wenn Ihr Startindex 0 ist (oder ein Index von Anfang an), lautet der richtige Code:
ANMERKUNGEN
1. Das Argument für deleteRow ist festgelegt.
Dies ist erforderlich, da beim Löschen einer Zeile die Anzahl der Zeilen abnimmt.
dh; Wenn ich (rows.length - 1) erreiche oder sogar bevor diese Zeile bereits gelöscht ist, haben Sie einen Fehler / eine Ausnahme (oder eine stille).
2. Der rowCount wird vor dem Start der for-Schleife genommen, da sich beim Löschen die "table.rows.length" ständig ändert. Sie haben also wieder das Problem, dass nur ungerade oder gerade Zeilen gelöscht werden.
Hoffentlich hilft das.
quelle
Angenommen, Sie haben nur eine Tabelle, sodass Sie sie nur mit dem Typ referenzieren können. Wenn Sie die Header nicht löschen möchten:
Andernfalls:
ich hoffe es hilft!
quelle
Ich musste alle Zeilen außer der ersten und der von @strat veröffentlichten Lösung löschen, aber das führte zu einer nicht erfassten Ausnahme (Verweis auf Node in einem Kontext, in dem er nicht vorhanden ist). Folgendes hat bei mir funktioniert.
quelle
Wenn Sie ein
ID
für deklarieren können, könnentbody
Sie einfach diese Funktion ausführen:quelle
Dies würde das Löschen der Iteration in einer nativen HTML-Tabelle bewirken
quelle
Der unten stehende Code funktioniert hervorragend. Es werden alle Zeilen außer der Kopfzeile entfernt. Also dieser Code wirklich t
quelle
Zuweisen einer ID zum tbody-Tag. dh. Danach sollte die folgende Zeile die Kopf- / Fußzeile der Tabelle beibehalten und alle Zeilen entfernen.
Wenn Sie möchten, dass die gesamte Tabelle (Kopf- / Zeilen- / Fußzeile) gelöscht wird, legen Sie die ID auf Tabellenebene fest, d. H.
quelle
Wenn Sie nicht entfernen möchten
th
und nur die darin enthaltenen Zeilen entfernen möchten, funktioniert dies einwandfrei.quelle
Wie wäre es damit:
Gehen Sie beim ersten Laden der Seite folgendermaßen vor:
Wenn Sie dann die Tabelle löschen möchten:
Das Ergebnis sind Ihre Kopfzeilen, wenn das alles ist, mit dem Sie begonnen haben. Die Leistung ist dramatisch schneller als bei Schleifen.
quelle
Wenn Sie weit weniger
<th>
Zeilen als Nichtzeilen haben<th>
, können Sie alle<th>
Zeilen in einer Zeichenfolge zusammenfassen, die gesamte Tabelle entfernen und dann schreiben<table>thstring</table>
wo sich die Tabelle befand.EDIT: Wobei "thstring" offensichtlich das HTML für alle Zeilen von
<th>
s ist.quelle
<th>
stattdessen das s als DOM-Elemente, löschen Sie das innerHTML der Tabelle und hängen Sie das<th>
s erneut an.Dies funktioniert im IE, ohne dass eine Variable für die Tabelle deklariert werden muss, und löscht alle Zeilen:
quelle
Dies ist ein einfacher Code, den ich gerade geschrieben habe, um dies zu lösen, ohne die Kopfzeile (erste) zu entfernen.
Hoffe es funktioniert bei dir !!.
quelle
Weisen Sie Ihrem Körper eine ID oder eine Klasse zu.
Sie können Ihre ID oder Klasse so benennen, wie Sie möchten, nicht unbedingt
#tbodyId
oder.tbodyClass
.quelle
Räumen Sie einfach den Tischkörper ab.
quelle
const table = document.querySelector ('table'); table.innerHTML === ''? null: table.innerHTML = ''; Das obige Javascript hat bei mir gut funktioniert. Es prüft, ob die Tabelle Daten enthält, und löscht dann alles einschließlich des Headers.
quelle