XML DOM insertBefore()メソッド
定義と使用法
insertBefore()メソッドは、既存の子ノードの前に新しい子ノードを挿入します。
このメソッドは新しい子ノードを返します。
構文:
insertBefore(newchild, refchild)
引数 | 説明 |
---|---|
newchild | 新しいノードを挿入する |
refchild | 新しいノードを挿入する前にこのノード |
ヒントと注記
注記:Internet Explorerは、ノード間に生成された空白テキストノード(例えば、改行シンボル)を無視しますが、Mozillaはそうではありません。したがって、以下の例では、最後の子ノードのノードタイプをチェックする関数を使用します。
要素ノードのノードタイプは1であり、したがって、最初の子ノードが要素ノードでない場合、それは次のノードに移動し、そのノードが要素ノードであるかどうかを確認し続けます。このプロセスは、最初の要素子ノードが見つかるまで続きます。この方法で、Internet ExplorerとMozillaで正しいメソッドを取得できます。
ヒント:IEとMozillaブラウザ間のXML DOMの違いに関する詳細な情報は、私たちのウェブサイトを訪れてください DOM ブラウザ 章。
インスタンス
すべての例で、私たちは XML ファイルを使用します books.xml、および JavaScript ファンクション loadXMLDoc()。
以下のスニペットは新しい <book> ノードを作成し、ドキュメントの最後の <book> 要素の前にこのノードを挿入する:
//最後の子ノードが要素ノードであるかチェックする
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode, get_lastchild(x));