XML DOM replaceChild() メソッド
定義と使用方法
replaceChild()
新しいノードで子ノードを置き換えるメソッド。
新しいノードはドキュメント内の既存のノードであっても、または新しいノードを作成することもできます。
ヒント:置き換えられた子ノードは後で同一ドキュメントの任意の要素に挿入することができます。後でそのドキュメントに挿入するために insertBefore() や appendChild() メソッドを使用するか、置き換えられたノードを別のドキュメントに挿入するために adoptNode() や importNode() メソッドを使用してください。
文法
nodeObject.replaceChild(newchild,oldchild)
パラメータ
パラメータ | 説明 |
---|---|
newchild | 必要。Node オブジェクト。子ノードリストに挿入する新しいノード。 |
oldchild | 必要。Node オブジェクト。子ノードリストで置き換えられるノード。 |
技術詳細
DOM 版本: | Core Level 1 Node Object。在 DOM Level 3 中修改。 |
---|---|
返り値: | Node オブジェクト。置き換えられたノード(oldchild)。 |
例
以下のコードは "books.xml" を xmlDoc に読み込み、最初の <book> 要素を置き換えます:
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; // book 要素、title 要素、テキストノードを生成 newNode = xmlDoc.createElement("book"); newTitle = xmlDoc.createElement("title"); newText = xmlDoc.createTextNode("Hello World"); // テキストノードを title ノードに追加 newTitle.appendChild(newText); // title ノードを book ノードに追加 newNode.appendChild(newTitle); y = xmlDoc.getElementsByTagName("book")[0]; // 新しい book ノードを使用して最初の book ノードを置き換え x.replaceChild(newNode, y); z = xmlDoc.getElementsByTagName("title"); // 全ての 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()
メソッド。