[Edge]。→、
親ノード Node の、指定ノード2 の前に指定ノード1 を挿入します。
mdn: 参照先ノードの前にこの親ノードの子としてノードを挿入します。
mdn: 指定されたノードが既に文書中に存在した場合、insertBefore() はこれを現在の位置から新しい位置に移動します。(つまり、既存の親ノードから自動的に削除され、指定された新しい親に追加されます。)
mdn: これは、1 つのノードが文書中に同時に 2 か所に存在できないことを意味します。
mdn: メモ: Node.cloneNode() を使用すると、ノードを新しい親の下に追加する前に複製を作成することができます。なお、cloneNode() で作成された複製は自動的には同期されません。
Node | Node。新しく挿入されるノードの、親(要素)ノードです。 |
---|---|
newNode | Node。挿入するノードです。 |
referenceNode | Node。newNode がこのノードの直前に挿入されます。
null の場合は、newNode は Node の子ノードの末尾に挿入されます。 ¶referenceNode は、必ず Nodeの子ノードでないとだめなようです。 |
Node。挿入したノード(newNode と同じ)です。
Element.insertAdjacentElement()。
HTML:
<SPAN id=IdTest>[SPAN要素<B id=IdB>[B要素]</B>]</SPAN>
JavaScript:
N=document.createElement('I'); //I 要素を生成。 N.innerText="[I要素]"; //それにテキストを設定。 IdTest.insertBefore(N, IdB); //IdB の前に挿入。 D=IdTest.outerHTML; //全体を表示。 //<span id="IdTest">[SPAN要素<i>[I要素]</i><b id="IdB">[B要素]</b>]</span>
JavaScript: HTMLを表示し直して、
N=document.createElement('I'); //I 要素を生成。 N.innerText="[I要素]"; //それにテキストを設定。 IdTest.insertBefore(N, null); //挿入参照位置を省いて挿入。 D=IdTest.outerHTML; //全体を表示。 //<span id="IdTest">[SPAN要素<b id="IdB">[B要素]</b>]<i>[I要素]</i></span>
末尾に挿入された。
HTML:
<SPAN id=IdTest>[SPAN要素。テキスト1<B id=IdB>[B要素]</B>SPANのテキスト2]</SPAN>
JavaScript:
NL=IdTest.childNodes; //IdTest の子ノード リストを得る。 IdTest.insertBefore(NL[2], IdB); //挿入 D=IdTest.outerHTML; //全体を表示。 //<span id="IdTest">[SPAN要素。テキスト1SPANのテキスト2]<b id="IdB">[B要素]</b></span>
テキスト ノードを移動できた。