--- title: Node.appendChild slug: Web/API/Node/appendChild tags: - API - DOM - Method - Node - Reference translation_of: Web/API/Node/appendChild ---
{{APIRef("DOM")}}

Node.appendChild() メソッドは、特定の親ノードの子ノードリストの末尾にノードを追加します。追加しようとしたノードが既に存在していたら、それは現在の親ノードから除かれ、新しい親ノードに追加されます(他のノードに追加する前にそのノードを親ノードから削除する必要はありません)。

これは、ノードが同時にドキュメントの 2 箇所に存在できないということを意味します。ノードがすでに親を持っている場合、最初にノードが削除された後、新しい位置の末尾に追加されます。{{domxref("Node.cloneNode()")}} は、新しい親の末尾に追加する前に、ノードのコピーを作成するために使用できます。cloneNode で作成したコピーは自動的に同期を保たないことに注意してください。

このメソッドでは、異なるドキュメント間でノードを移動することはできません。異なるドキュメントからノードを末尾に追加したい場合は、{{domxref("document.importNode()")}} メソッドを使用する必要があります。

構文

var aChild = element.appendChild(aChild);

引数

aChild

親ノードに追加する子ノード(要素)

戻り値

追加した子ノードです。ただし、{{domxref("DocumentFragment")}}を引数にした場合は、空の{{domxref("DocumentFragment")}}が戻ります。

注意

appendChild() が子要素を返すため、メソッドチェーンが期待通りに動きません。:

var aBlock = doc.createElement('block').appendChild(doc.createElement('b'));

aBlock に <b></b> を与えただけでは期待通りに動きません。

// 新しい段落要素を作成し、ドキュメントの body の最後に追加します。
var p = document.createElement("p");
document.body.appendChild(p);

仕様

仕様 ステータス コメント
{{SpecName('DOM WHATWG', '#dom-node-appendchild', 'Node.appendChild()')}} {{Spec2('DOM WHATWG')}} {{SpecName("DOM3 Core")}} から変更なし。
{{SpecName('DOM3 Core', 'core.html#ID-184E7107', 'Node.appendChild()')}} {{Spec2('DOM3 Core')}} {{SpecName("DOM2 Core")}} から変更なし。
{{SpecName('DOM2 Core', 'core.html#ID-184E7107', 'Node.appendChild()')}} {{Spec2('DOM2 Core')}} {{SpecName("DOM1")}} から変更なし。
{{SpecName('DOM1', 'level-one-core.html#ID-184E7107', 'Node.appendChild()')}} {{Spec2('DOM1')}} 初期定義。

ブラウザー実装状況

{{Compat("api.Node.appendChild")}}

関連情報