XML DOM appendChild() メソッド
定義と使用法
appendChild()メソッドは、ノードの子ノードリストの末尾に新しい子ノードを追加します。
このメソッドは、新しい子ノードを返します。
構文:
appendChild(newchild)
引数 | 説明 |
---|---|
newchild | 追加されたノード |
返り値
追加されたノード
説明
このメソッドは、ノードnewchildをドキュメントに追加し、それを現在のノードの最後の子ノードにします。
もしドキュメントツリーにnewchildが既に存在する場合、それはドキュメントツリーから削除され、新しい位置に再插入されます。newchildがDocumentFragmentノードの場合、直接挿入されず、その子ノードは現在のノードのchildNodes[]配列の末尾に順に挿入されます。
ノード(またはドキュメントによって作成されたノード)は、別のドキュメントに挿入できません。つまり、newchildのownerDocument属性は、現在のノードのownerDocument属性と同じでなければなりません。
例
以下の関数は、ドキュメントの末尾に新しい段落を挿入します:
function appendMessage (message) { var pElement = document.createElement("p"); var messageNode = document.createTextNode(message);pElement.appendChild(messageNode);
document.body.appendChild(pElement);
}
例
すべての例では、XMLファイルを使用します books.xmlおよび、JavaScript関数 loadXMLDoc()。
以下のコードスニペットは、最初の <book> 要素にノードを追加し、最初の <book> 要素のすべての子ノードを出力するために使用されます:
xmlDoc=loadXMLDoc("books.xml");
var newel=xmlDoc.createElement('edition');
var newtext=xmlDoc.createTextNode('First');
newel.appendChild(newtext);
var x=xmlDoc.getElementsByTagName('book')[0];
x.appendChild(newel);
;
var y=x.childNodes;
for (var i=0;i<y.length;i++)
{
//要素ノードのみを表示
if (y[i].nodeType==1)
{
document.write(y[i].nodeName);
document.write("<br />");
}
}
出力:
title author year price edition
注釈:Internet Explorerは、ノード間に生成された空白テキストノード(例えば、改行シンボル)を無視しますが、Mozillaはそうではありません。したがって、以下の例では、要素ノード(要素ノードのnodeType=1)のみを処理します。
ヒント:IEとMozillaブラウザ間のXML DOMの違いに関する詳細な情報が必要な場合は、私たちの DOM ブラウザ 章節。