XML DOM appendChild() メソッド

Node オブジェクトリファレンスマニュアル

定義と使用法

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 ブラウザ 章節。

Node オブジェクトリファレンスマニュアル