aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/node/appendchild/index.md
blob: c71ba507b3412cbdd3ae6a98a90c7ffb485c6e0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: element.appendChild
slug: Web/API/Node/appendChild
tags:
  - API
  - Ajout
  - DOM
  - Enfant
  - Méthodes
  - Noeuds
translation_of: Web/API/Node/appendChild
---
{{APIRef("DOM")}}

La méthode **`Node.appendChild()`** ajoute un nœud à la fin de la liste des enfants d'un nœud parent spécifié. 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 une nouvelle position (il n'est pas nécessaire de supprimer le noeud sur son noeud parent avant de l'ajouter à un autre).

Cela signifie qu'un noeud ne peut pas être à deux points du document simultanément. Donc, si le nœud a déjà un parent, le nœud est d'abord retiré, puis ajouté à la nouvelle position. Le {{domxref("Node.cloneNode()")}} peut être utilisé pour réaliser une copie de noeud avant de l'ajouter à son nouveau parent. Notez que les copies faites avec `cloneNode` ne seront pas automatiquement synchronisées.

Si l'enfant donné est un {{domxref("DocumentFragment")}} , le contenu entier du {{domxref("DocumentFragment")}} est déplacé dans la liste d'enfants du noeud parent spécifié.

## Syntaxe

    var elementAjoute = element.appendChild(enfant);

### Paramètres

- **enfant**
  - : Le noeud à ajouter au noeud parent donné (généralement un élément).

### Valeur renvoyée

La valeur renvoyée est l'enfant ajouté sauf si l'enfant donné est un {{domxref ("DocumentFragment")}}, auquel cas le {{domxref ("DocumentFragment")}} vide est renvoyé.

## Notes

Le chaînage peut ne pas fonctionner comme prévu en raison de `appendChild()` renvoyant l'élément enfant :

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

Définit `aBlock` pour `<b></b>` uniquement, ce que vous ne voulez probablement pas.

## Exemple

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

## Spécification



| Spécification                                                                                            | Statut                           | Commentaire                                            |
| -------------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------ |
| {{SpecName('DOM WHATWG', '#dom-node-appendchild', 'Node.appendChild()')}}         | {{Spec2('DOM WHATWG')}} | Pas de changement de {{SpecName("DOM3 Core")}}. |
| {{SpecName('DOM3 Core', 'core.html#ID-184E7107', 'Node.appendChild()')}}         | {{Spec2('DOM3 Core')}}     | Pas de changement de {{SpecName("DOM2 Core")}}. |
| {{SpecName('DOM2 Core', 'core.html#ID-184E7107', 'Node.appendChild()')}}         | {{Spec2('DOM2 Core')}}     | Pas de changement de {{SpecName("DOM1")}}.     |
| {{SpecName('DOM1', 'level-one-core.html#ID-184E7107', 'Node.appendChild()')}} | {{Spec2('DOM1')}}         | Définition initiale.                                   |

## Compatibilité des navigateurs

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

## Voir aussi

- {{domxref("Node.removeChild")}}
- {{domxref("Node.replaceChild")}}
- {{domxref("Node.insertBefore")}}
- {{domxref("Node.hasChildNodes")}}
- {{domxref("ParentNode.append()")}}