Wenn ich etwas wie divNode.appendChild(pNode)
mache, wird das pNode
innerhalb divNode
verschoben. Es scheint, als ob sein Elternteil sich von dem, was es war, zu divNode
ändert. Ist das ein erwartetes Verhalten?Schaltet .appendChild() die Eltern-Kind-Beziehung zwischen dem Kind und seinem aktuellen Elternteil ab?
Hier ist mein Code: http://jsfiddle.net/YqG96/
<html>
<head>
<style>
p {
background: orange;
}
div {
background: lightcyan;
padding: 5px;
}
</style>
<script>
window.onload = function() {
pNode = document.getElementById('pNode');
divNode = document.getElementById('divNode');
divNode.appendChild(pNode);
}
</script>
</head>
<body>
<p id="pNode">Foo</p>
<div id="divNode">Bar</div>
</body>
</html>
Ist es möglich, es so zu modifizieren, dass pNode
unter dem Körper sowie die divNode
bleibt? Wenn zwei Eltern für einen Knoten keinen Sinn ergeben, ist es dann möglich, eine neue Kopie von pNode
zu erstellen und diese neue Kopie an divNode
anzufügen?
Ein Knoten kann höchstens einen Elternteil haben, also ja. Das DOM ist ein ** Baum ** Graph. Überprüfen Sie die [cloneNode] (http://goo.gl/O02i0) API. – Pointy
Denken Sie darüber nach - wenn ein Knoten zwei Eltern haben könnte, was wäre dann die Position des Elements auf der Seite? Es hätte zwei Positionen, was keinen Sinn ergibt. – pimvdb