DOMに於いて、要素ノードの下位にある連続したテキスト子孫ノードを一纏めに正規化するnormalize()メソッドの解説です。
normalize()メソッドとは、要素ノードの下位のノードに対し、テキストノードが複数連続している場合にそれらを全て一つのテキストノードにまとめる事で正規化を行うメソッドです。
本来、テキストノードは、連続するものは全て一つにまとめる事が可能ですが、DOM処理に依り無意味にテキストノードが複数並ぶような状況になった場合に、下位ノード評価などの処理が複雑になってしまうため、必要に応じて連続するテキストノードを全て一つに纏めてしまうと言うものです。
normalize()メソッドは
に依って実装されます。
従って、要素ノードに対してのみnormalize()メソッドを用いる事が出来ます。
normalize()メソッドは引数, 返し値とも持ちません。
ある要素ノード e 直下に、変数 s で指定されたテキストを含む一番初めのテキストノードを抽出する例です。
DOM処理を行った結果、テキストノードが分割された状態になっている事があり得るため、事前に正規化してテキストノードを一つにまとめた上で評価を行う事とします。
e.normalize();var e1=e.childNodes;var i=-1;while (++i<e1.length) {if (e1[i].nodeType!=3) continue;if (e1[i].nodeValue.indexOf(s)>-1) break;}if (i<e1.length) {var node=e1[i];(取得したノードの処理)}
Copyright ©平成21年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com