replaceChild
Markus**
- javascript
ich versuche das Erste mit dem Letzen, bzw. das Letze mit dem ersten DIV Element zu überschreiben. Allerdings terminiert das Ganze mit einem "node not found"
//erstes DIV suchen und Knoten speichern
node = document.getElementById("parent").firstChild;
while (node != null) {
if (node.nodeName == 'DIV') {
first = node.cloneNode(true);
break;
}
node = node.nextSibling;
}
//letzes DIV suchen und Knoten speichern
node = document.getElementById("parent").lastChild;
while (node != null) {
if (node.nodeName == 'DIV') {
last = node.cloneNode(true);
break;
}
node = node.previousSibling;
}
//letzes DIV mit erstem überschreiben
document.getElementById("parent").replaceChild(first, last);
hab ich "replaceChild" falsch verstanden?
hab's begriffen!
replaceChild(element, position)
Hallo,
um nur replace zu testen, würde ich auf den rest verzichten.
<html>
<script>
myReplace = function() {
p1 = document.getElementById("p1");
p2 = document.getElementById("p2");
document.getElementsByTagName("body")[0].replaceChild(p1,p2);
}
</script>
</head>
<body>
<p id="p0">p0</p>
<p id="p1">p1</p>
<p id="p2">p2</p>
<p id="p3">p3</p>
<button onclick="myReplace()">myReplace()</button>
</body>
</html>
Gruß
jobo
Dein Script gibt aber auch nicht das wieder, was replaceChild eigentlich tun soll... ;) Hast Du es getestet?
Cheers
Hallo,
Dein Script gibt aber auch nicht das wieder, was replaceChild eigentlich tun soll... ;) Hast Du es getestet?
ja. p2 war wech. wie würdest du es denn anpassen? kannst dir doch mit
myParagraph = document.createElement("p");
myText = document.createTextNode("bla");
myParagraph.appendChild(myText);
einen eigenen Absatz basteln und den stattdessen ersetzen.
<html>
<script>
[code lang=javascript]
myReplace = function() {
p1 = document.getElementById("p1");
p2 = document.getElementById("p2");
document.getElementsByTagName("body")[0].replaceChild(p1,p2);
myNewParagraph = document.createElement("p");
myNewText = document.createTextNode("myNewTextInmyNewParagraph");
myNewParagraph.appendChild(myNewText);
p3 = document.getElementById("p3");
document.getElementsByTagName("body")[0].replaceChild(myNewParagraph,p3);
}
</script>
</head>
<body>
<p id="p0">p0</p>
<p id="p1">p1</p>
<p id="p1a">p1a</p>
<p id="p1b">p1b</p>
<p id="p2">p2 - to be replaced with p1</p>
<p id="p2a">p2a</p>
<p id="p2b">p2b</p>
<p id="p3">p3 - to be replaced with newNode</p>
<p id="p3a">p3a</p>
<p id="p3a">p3b</p>
<button onclick="myReplace()">myReplace()</button>
</body>
</html>
[/code]
getestet (;-).
Gruß
jobo
Hallo,
Dein Script gibt aber auch nicht das wieder, was replaceChild eigentlich tun soll... ;) Hast Du es getestet?
Es zeigt auch, dass das Element, mit dem man replaced, dann seinen Platz verlässt. Und das replacte ist dann wech.
Gruß
jobo