Metodo replaceChild() XML DOM

Definizione e utilizzo

replaceChild() Il metodo sostituisce il nodo figlio con un nuovo nodo.

Il nuovo nodo può essere un nodo esistente nel documento o può essere creato.

Suggerimento:Il nodo sostituito può essere inserito in un qualsiasi elemento dello stesso documento in un secondo momento. Utilizza i metodi insertBefore() o appendChild() per inserirlo in un secondo momento nello stesso documento, o utilizza i metodi adoptNode() o importNode() per inserirlo in un altro documento.

Sintassi

nodeObject.replaceChild(newchild,oldchild)

Parametri

Parametri Descrizione
newchild Obbligatorio. Oggetto Node. Nodo da inserire nella lista dei figli.
oldchild Obbligatorio. Oggetto Node. Nodo da sostituire nella lista dei figli.

Dettagli tecnici

Versione DOM: Oggetto di Livello di Base 1 Node. Modificato nel DOM Level 3.
Ritorna: Oggetto Node. Nodo sostituito (oldchild).

Esempio

Il codice seguente carica "books.xml" nel xmlDoc e sostituisce l'elemento <book> primo:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
    var x, y, z, i, newNode, newTitle, newText, xmlDoc, txt;
    xmlDoc = xml.responseXML;
    txt = "";
    x = xmlDoc.documentElement;
    // Crea un elemento book, un elemento title e un nodo testo
    newNode = xmlDoc.createElement("book");
    newTitle = xmlDoc.createElement("title");
    newText = xmlDoc.createTextNode("Hello World");
    // Aggiungi il nodo testo al nodo title
    newTitle.appendChild(newText);
    // Aggiungi il nodo title al nodo book
    newNode.appendChild(newTitle);
    y = xmlDoc.getElementsByTagName("book")[0];
    // Sostituisci il primo nodo book con un nuovo nodo book
    x.replaceChild(newNode, y);
    z = xmlDoc.getElementsByTagName("title");
    // Outputta tutti i title
    for (i = 0; i < z.length; i++) {
        txt += z[i].childNodes[0].nodeValue + "<br>";
    }
    document.getElementById("demo").innerHTML = txt;
}

亲自试一试

浏览器支持

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
支持 支持 支持 支持 支持

所有主流浏览器都支持 replaceChild() 方法。