Ich habe ein kleines Problem. Ich habe einige dynamisch erstellte Tabellen und jede Zeile hat eine ID. Ich möchte die Zeile mit der ID “x” löschen.
Ich habe die übliche Methode (removeChild) ausprobiert, aber es funktioniert anscheinend nicht für Tabellen.
function deleteRow(tableid, rowid)
{
document.getElementById(tableid).removeChild(document.getElementById(rowid));
}
Der Fehler, den ich bekomme, ist: Knoten wurde nicht gefunden” Code: “8
Ich habe auch das versucht:
function deleteRow(tbodyid, rowid)
{
document.getElementById(tbodyid).removeChild(document.getElementById(rowid));
}
und bekam den gleichen Fehler.
Ich kann die nicht verwenden deleteRow()
-Methode, da diese den Index der Zeile benötigt und ich lieber nicht nach der ID suche, den Index markiere und dann lösche (auch wenn ich keine anderen Lösungen finde …).
Sie könnten den Zeilenindex erhalten durch
rowElement.rowIndex
…– Felix Klinge
11. Februar 2011 um 9:11 Uhr
Könnten Sie eine Beispieltabelle zum Testen hinzufügen. Es könnte etwas Seltsames in der Art und Weise sein, wie die Tabelle entworfen ist.
– David Martensson
11. Februar 2011 um 9:20 Uhr
Für andere Leute, die das gleiche Problem haben: Dies passiert für das erste Code-Snippet, weil das übergeordnete Element ein in einer Tabelle ist stets ein -, – oder -Element. Wenn Sie Ihr in Ihrem HTML nicht in eines davon einschließen, fügt das DOM automatisch ein ein, und dies wird das übergeordnete Element Ihres sein. nicht das
-Element. SoremoveChild()
Der Aufruf aus dem Tabellenelement schlägt fehl.– Tun
19. Oktober 2019 um 6:12 Uhr
Wie wäre es mit:
Und wenn das fehlschlägt, sollte das wirklich funktionieren:
Deine erste Wahl hat bei mir super funktioniert. Ich hatte erfolglos mit rowIndex herumgespielt, aber es ist gut, dieses Beispiel zu sehen.
– Betty Mock
15. Dezember 2014 um 21:20 Uhr
Hervorragende Arbeit (zweite Methode)
– dipenparmar12
17. September 2020 um 6:20 Uhr
Im IE7 ist die
removeChild(row)
Methode hat bei mir besser funktioniert. Die Tabellenspaltenbreiten bleiben dabei flexibeltable.deleteRow
sie bleiben stecken.– Agostino
11. Juni 2021 um 9:43 Uhr
@Agostino – Es ist 2021. Wenn Sie IE7 noch unterstützen müssen, viel Glück für Sie, aber Sie sind auf sich allein gestellt. Diese alten Browser waren seltsam …
– Vix-
11. Juni 2021 um 9:52 Uhr
Und was ist mit dem Versuch, diese Zeile nicht zu löschen, sondern auszublenden?
Nun … außer der Tatsache, dass es ungefähr 80000 gibt und es ziemlich schlecht funktionieren würde … Ich überprüfe, ob es existiert, und hole dann Daten daraus, wenn es existiert (ich könnte auch nach display:none suchen, aber ich denke, es ist schneller zu überprüfen nicht definiert).
– zozo
11. Februar 2011 um 9:14 Uhr
Davon Postversuchen Sie dieses Javascript:
Ich habe dieses Javascript auf einer Testseite ausprobiert und es hat bei mir in Firefox funktioniert.
Yuri
zu Vilx-:
und was wäre wenn
row.parentNode
istTBODY
?Sie sollten es zuerst überprüfen und dann tun
while
durch.tBodies
wahrscheinlichEtwas schnell und schmutzig:
wenn du platzierst
irgendwo in der Zeile, die Sie löschen möchten, dann funktioniert es sogar ohne IDs
Oralet
Das übergeordnete Element der Zeile ist nicht das Objekt, von dem Sie denken, dass ich es aus dem Fehler verstehe.
Versuchen Sie zuerst, das übergeordnete Element der Zeile zu erkennen, dann können Sie sicher sein, in was Sie schreiben müssen
getElementById
Teil der Eltern.Geldautomat Fahim
This website is using cookies to improve the user-friendliness. You agree by using the website further.
Privacy policyContact - Terms and Conditions - Privacy Policy