[Edge]。→、
親ノード Node の、指定の子ノードを指定の別ノードに置き換えます。そして置き換えられた Node を返します。
Node | Node。 |
---|---|
newChild | Node。oldChild を置き換える新しいノード(既存のノードは先に取り除かれます)。 |
oldChild | Node。置き換えられる既存ノード。 |
置き換えられたノード(oldChild と同じノード)。
HTML:
<div> <span id="childSpan">foo bar</span> </div>JavaScript:
//ID も属性も内容も持たない空要素を生成 var sp1 = document.createElement("span"); //生成したノードに id 属性 'newSpan' を付与 sp1.setAttribute("id", "newSpan"); //テキストノードを生成 var sp1_content = document.createTextNode("新しい span 要素"); //生成したテキストノードを先の空要素の子ノードとして配置 sp1.appendChild(sp1_content); // 置換に先んじ、参照を代入 var sp2 = document.getElementById("childSpan"); // 既存の置換対象ノード var parentDiv = sp2.parentNode; // 置換対象ノードの親要素 // 既存ノード "sp2" を 生成済の新しい span 要素 "sp1" と置換 parentDiv.replaceChild(sp1, sp2);上記 HTML コード実行後のノードは以下の様になります:
<div> <span id="newSpan">新しい span 要素</span> </div>
HTML:
<SPAN id=IdTest>[SPAN要素。テキスト<B>[B要素]</B>テキスト]</SPAN>
JavaScript:
N=document.createElement('I'); //I 要素を生成。 N.innerText="[I要素]"; //そのテキストを設定。 NL=IdTest.childNodes; //IdTest の子ノード リストを得る。 D=IdTest.replaceChild(N, NL[0]); //IdTest の子ノード 0 番目に作成した要素に置き換える。 DA=IdTest.outerHTML; //全体表示。 //=[string]:<span id="IdTest"><i>[I要素]</i><b>[B要素]</b>テキスト]</span>
取得した内容:D
=[object]:[object Text] wholeText=[string]:[SPAN要素。テキスト assignedSlot=[object]:null splitText=[function]:function splitText() { [native code] } data=[string]:[SPAN要素。テキスト …
JavaScript: HTMLを表示しなおして、
NL=IdTest.childNodes; //IdTest の子ノード リストを得る。 D=IdTest.replaceChild(NL[2], NL[0]); //IdTest の子ノード 0 番目に、同、子ノード 2 番目に置き換える。 DA=IdTest.outerHTML; //全体表示。 //=[string]:<span id="IdTest">テキスト]<b>[B要素]</b></span>
ノードの移動ができた。