DOM

Node.normalize() メソッド

 編集:2022.10.30 by T.A.

[Edge]。→

Node のノード ツリーを正規化します。隣り合うテキスト ノードは1つになり、空のテキスト ノードは無くなります。

mdn: 指定されたノードとその下のツリーを正規化された形にします。正規化されたサブ ツリーでは、サブツリー内に空のテキストノードがなくなり、隣り合うテキストノードがなくなります。

構文
Node.normalize()
Node Node
戻り値

なし。

mdn

HTML:

<output id="result"></output>

JavaScript:

var wrapper = document.createElement("div");

wrapper.appendChild( document.createTextNode("Part 1 ") );
wrapper.appendChild( document.createTextNode("Part 2 ") );

// wrapper.childNodes[0].textContent === "Part 1 "
// wrapper.childNodes[1].textContent === "Part 2 "
// この時点で、wrapper の 子ノード数は 2 です。
//	wrapper.childNodes.length === 2

wrapper.normalize(); // 正規化

// 正規化後の wrapper の子ノード数は 1 となっています。
//	wrapper.childNodes.length === 1
// 挿入処理の為に冗長化したノードはひとつに纏められています。
//	wrapper.childNodes[0].textContent === "Part 1 Part 2"
2つのテキスト ノードを…
E=document.createElement("div");
TN1=document.createTextNode("テキスト1");
TN2=document.createTextNode("テキスト2");
E.appendChild(TN1);
E.appendChild(TN2);
D=E.childNodes;  //=[object]:[object NodeList]
	//0=[object]:[object Text]
	//1=[object]:[object Text]
	//entries=[function]:function entries() { [native code] }
	//…
DA=E.outerHTML;  //=[string]:<div>テキスト1テキスト2</div>

JavaScript: 次に以下を実行する。

E.normalize();
D=E.childNodes;  //=[object]:[object NodeList]
	//0=[object]:[object Text]
	//entries=[function]:function entries() { [native code] }
	//…
DA=E.outerHTML;  //=[string]:<div>テキスト1テキスト2</div>

テスト