MDN wants to learn about developers like you:

この記事はまだボランティアによって 日本語 に翻訳されていません。ぜひ MDN に参加して翻訳を手伝ってください!
この記事を English (US) で読むこともできます。

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The ParentNode.append method inserts a set of Node objects or DOMString objects after the last child of the ParentNode. DOMString objects are inserted as equivalent Text nodes.

Differences to Node.appendChild():

  • ParentNode.append() allows you to also append DOMString object, whereas Node.appendChild() only accepts Node objects.
  • ParentNode.append() has no return value, whereas Node.appendChild() returns the appended Node object.
  • ParentNode.append() can append several nodes and strings, whereas Node.appendChild() can only append one node.


[Throws, Unscopable] 
void ParentNode.append((Node or DOMString)... nodes);


A set of Node or DOMString objects to insert.



Appending an element

var parent = document.createElement("div");
var p = document.createElement("p");

console.log(parent.childNodes); // NodeList [ <p> ]

Appending text

var parent = document.createElement("div");
parent.append("Some text");

console.log(parent.textContent); // "Some text"

Appending an element and text

var parent = document.createElement("div");
var p = document.createElement("p");
parent.append("Some text", p);

console.log(parent.childNodes); // NodeList [ #text "Some text", <p> ]

ParentNode.append() is unscopable

The append() method is not scoped into the with statement. See Symbol.unscopables for more information.

var parent = document.createElement("div");

with(parent) { 
// ReferenceError: append is not defined 


You can polyfill the append() method in Internet Explorer 9 and higher with the following code:

// Source:
(function (arr) {
  arr.forEach(function (item) {
    if (item.hasOwnProperty('append')) {
    Object.defineProperty(item, 'append', {
      configurable: true,
      enumerable: true,
      writable: true,
      value: function append() {
        var argArr =,
          docFrag = document.createDocumentFragment();
        argArr.forEach(function (argItem) {
          var isNode = argItem instanceof Node;
          docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);


Specification Status Comment
The definition of 'ParentNode.append()' in that specification.
Living Standard Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Basic support 54.0 49 (49) No support No support 39 10.0
Feature Android Webview Firefox Mobile (Gecko) IE Mobile Edge Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 49.0 (49) ? ? 39 10.2 54.0

See also


 このページの貢献者: raidiun, stevenwdv, Delapouite, gretencord, jszhou, valtlai, jpmedley, fscholz
 最終更新者: raidiun,