wie funktioniert replaceChild() eigentlich?
Jeena Paradies
- javascript
Hallo,
Ich kenne http://de.selfhtml.org/javascript/objekte/node.htm#replace_child, aber dort wird einem leider nicht vermittelt wie das mit dem auswechseln der Knoten funktionieren soll, wenn es nicht nur ein knoten ist, sondern gleich mehrere.
Ich habe dieses XHTML:
<table>
<tbody>
<tr id="g12">
<td>foo</td>
<td>bar</td>
<td><input name="zet" value="2" type="submit" /></td>
</tr>
<tr id="g13">
<td>ballo</td>
<td>fubu</td>
<td><input name="hejsan" value="7" type="submit" /></td>
</tr>
</tbody>
</table>
Und bekomme über Ajax dieses XML mit hilfe von responseXML, es ist also ein DOM Objekt.
<tr id="g12">
<td>baba</td>
<td>bubu</td>
<td><input name="lala" value="5" type="submit" /></td>
</tr>
Wie ihr bemerkt habt hat das tr aus dem XML die gleiche ID wie ein tr aus dem HTML, und genau das, bzw den Inhalt möchte ich durch die neuen Daten ersetzen. Mein Ansatz war folgender:
function update(dom) {
var tr = document.getElementById(dom.firstChild.getAttribute("id"));
tr.parentNode.replaceChild(dom, tr);
}
Aber leider bekomme ich da nur diesen Fehler, den ich nicht so ganz verstehe:
--------------
Fehler: [Exception... "Node cannot be inserted at the specified point in the hierarchy" code: "3" nsresult: "0x80530003 (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)" location: "http://localhost/admin/admin.js Line: 68"]
Quelldatei: http://localhost/admin/admin.js
Zeile: 68
--------------
Zeile 68 ist die mit tr.parntNode.replaceChild(dom, tr);
Grüße
Jeena Paradies
hi,
Aber leider bekomme ich da nur diesen Fehler, den ich nicht so ganz verstehe:
Fehler: [Exception... "Node cannot be inserted at the specified point in the hierarchy"
Dein "neuer" Knoten gehört zu einem anderen Dokument, also kannst du ihn nicht so einfach in das XHTML-Dokument einfügen bzw. eins von dessen Kindern durch ihn ersetzen.
Siehe auch http://forum.de.selfhtml.org/archiv/2005/7/t110743/#m695823
gruß,
wahsaga
Hallo,
Danke, mit Hilfe des Links konnte ich mein Problem lösen.
Grüße
Jeena Paradies