Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Les API Web
  3. Node
  4. element.cloneNode

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 EnglishAlways switch to English

element.cloneNode

Baseline Widely available

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éthodeNode.cloneNode() renvoie une copie du nœud sur lequel elle a été appelée.

Syntaxe

js
var dupNode = node.cloneNode([deep]);
node

Le noeud à dupliquer.

dupNode

Le nouveau noeud qui sera un clone dunode.

deepFacultatif (profondeur)

true (vrai) si les enfants du noeud doivent aussi être clonés oufalse (faux) si seul le noeud spécifié doit l'être.

Note :Dans la spécification DOM4 (telle qu'implémentée dans Gecko 13.0),deep est un argument facultatif. S'il est omis, la méthode agit comme si la valeur dedeep étaittrue par défaut, elle utilise le clonage profond comme comportement par défaut. Pour créer un clone superficiel,deep doit être défini surfalse.

Le comportement a été modifié dans la dernière spécification et, s'il est omis, la méthode doit agir comme si la valeur dedeep étaitfalse. Bien que ce soit toujours facultatif, vous devriez toujours fournir l'argumentdeep pour la compatibilité amont et aval. Avec Gecko 28.0, la console a averti les développeurs de ne pas omettre l'argument. À partir de Gecko 29.0, un clone superficiel est défini par défaut au lieu d'un clone profond.

Exemple

js
p = document.getElementById("para1");p_prime = p.cloneNode(true);

Notes

Cloner un nœud copie tous ses attributs ainsi que leurs valeurs, y compris les auditeurs intrinsèques (en ligne). Il ne copie pas les auditeurs d'évènement ajoutés avecaddEventListener() ou ceux assignés au propriétés d'éléments (par exemplenode.onclick = fn). De plus, pour un élément<canvas> l'image peinte n'est pas copiée.

Le nœud dupliqué renvoyé parcloneNode ne fera pas partie du document tant qu'il n'y est pas ajouté via la méthodeNode.appendChild() ou une méthode similaire. De même, il n'a pas de parent tant qu'il n'a pas été ajouté à un autre nœud.

Sideep est défini àfalse, aucun des nœuds enfants n'est copié.Tout texte contenu dans le nœud n'est pas copié non plus , car il fait partie d'un ou plusieurs nœudsText enfants.

Sideep est évalué àtrue, le sous-arbre entier est copié également (y compris le texte qui peut être contenu dans des nœudsText enfants). Pour les nœuds vides (par exemple les éléments<img> et<input> ) le fait de mettredeep àtrue oufalse n'a aucune incidence sur la copie, mais il est tout de même nécessaire de fournir une valeur.

Attention :cloneNode() peut conduire à dupliquer des ID (identifiant) d'éléments dans un document.

Si le noeud d'origine a un identifiant et que le clone doit être placé dans le même document, l'identifiant du clone peut être modifié pour être unique. Les attributs du nom peuvent devoir être modifiés également, selon que les noms en double sont attendus.

Pour cloner un noeud à ajouter dans un document différent, utilisezDocument.importNode() à la place.

Spécifications

Specification
DOM
# ref-for-dom-node-clonenode①

Compatibilité des navigateurs

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp