Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Node : méthode appendChild()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode appendChild() de l'interface Node ajoute un nœud à la fin de la liste des enfants d'un nœud parent défini.

Note : Si l'enfant donné est une référence à un nœud existant dans le document, appendChild() le déplace de sa position actuelle vers la nouvelle position.

Si l'enfant donné est un objet DocumentFragment, le contenu entier du DocumentFragment est déplacé dans la liste d'enfants du nœud parent défini.

appendChild() retourne le nœud nouvellement ajouté, ou si l'enfant est un DocumentFragment, le fragment vidé.

Note : Contrairement à cette méthode, la méthode Element.append() prend en charge plusieurs arguments et l'ajout de chaînes de caractères. Vous pouvez préférer l'utiliser si votre nœud est un élément.

Syntaxe

js
appendChild(child)

Paramètres

child

Le nœud à ajouter au nœud parent donné (généralement un élément).

Valeur de retour

Un Node qui est l'enfant ajouté (child), sauf lorsque child est un DocumentFragment, auquel cas le DocumentFragment vide est retourné.

Exceptions

HierarchyRequestError DOMException

Levée lorsque les contraintes de l'arbre DOM sont violées, c'est-à-dire si l'un des cas suivants se produit :

Description

Si l'enfant donné est une référence à un nœud existant dans le document, appendChild() le déplace de sa position actuelle à la nouvelle position — il n'est pas nécessaire de retirer le nœud de son parent avant de l'ajouter à un autre nœud. Cela signifie qu'un nœud ne peut pas être à deux endroits du document simultanément. La méthode Node.cloneNode() peut être utilisée pour créer une copie du nœud avant de l'ajouter sous le nouveau parent. Les copies créées avec cloneNode ne sont pas automatiquement synchronisées.

appendChild() retourne le nœud nouvellement ajouté, au lieu du nœud parent. Cela signifie que vous pouvez ajouter le nouveau nœud dès sa création sans perdre la référence à celui-ci :

js
const paragraphe = document.body.appendChild(document.createElement("p"));
// Vous pouvez ajouter d'autres éléments au paragraphe plus tard

D'un autre côté, vous ne pouvez pas utiliser appendChild() dans un style d'API fluide (angl.) (comme jQuery).

js
// Cela n'ajoute pas trois paragraphes :
// les trois éléments sont imbriqués au lieu d'être des voisins
document.body
  .appendChild(document.createElement("p"))
  .appendChild(document.createElement("p"))
  .appendChild(document.createElement("p"));

Exemples

Ajouter un paragraphe au corps du document

js
// Crée un nouvel élément paragraphe et l'ajoute à la fin du corps du document
const p = document.createElement("p");
document.body.appendChild(p);

Créer une structure DOM imbriquée

Dans cet exemple, nous essayons de créer une structure DOM imbriquée en utilisant le moins de variables temporaires possible.

js
const fragment = document.createDocumentFragment();
const li = fragment
  .appendChild(document.createElement("section"))
  .appendChild(document.createElement("ul"))
  .appendChild(document.createElement("li"));
li.textContent = "bonjour le monde";

document.body.appendChild(fragment);

Cela génère l'arbre DOM suivant :

html
<section>
  <ul>
    <li>bonjour le monde</li>
  </ul>
</section>

Spécifications

Spécification
DOM
# dom-node-appendchild

Compatibilité des navigateurs

Voir aussi