ChildNode.replaceWith()

Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.


La méthode ChildNode.replaceWith() remplace ce noeud enfant de la liste des enfants de son parent par un ensemble de Node ou d'objets DOMString .
Les objets
DOMString sont insérés en tant que noeuds Text.
 

Syntaxe

[Throws, Unscopable] 
void ChildNode.replaceWith((Node ou DOMString)... nodes);

Paramètres

nodes
Un ensemble de Node ou d'objets DOMString à remplacer.

Exceptions

Exemples

Utiliser replaceWith()

var parent = document.createElement("div");
var enfant = document.createElement("p");
parent.appendChild(child);
var span = document.createElement("span");

enfant.replaceWith(span);

console.log(parent.outerHTML);
// "<div><span></span></div>"

ChildNode.replaceWith() ne peut être contextualisée

La méthode replaceWith() n'est pas contextualisée dans l'expression with. Voir Symbol.unscopables pour plus d'informations.

with(node) { 
  replaceWith("foo");
}
// ReferenceError: replaceWith n'est pas défini 

Prothèse d'émulation

Vous pouvez émuler la méthode replaceWith( ) pour Internet Explorer 9 et plus avec le code suivant :

// source : https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/replaceWith()/replaceWith().md
(function (arr) {
  arr.forEach(function (item) {
    if (item.hasOwnProperty('replaceWith')) {
      return;
    }
    Object.defineProperty(item, 'replaceWith', {
      configurable: true,
      enumerable: true,
      writable: true,
      value: function replaceWith() {
        var argArr = Array.prototype.slice.call(arguments),
          docFrag = document.createDocumentFragment();
        
        argArr.forEach(function (argItem) {
          var isNode = argItem instanceof Node;
          docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
        });
        
        this.parentNode.replaceChild(docFrag, this);
      }
    });
  });
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);

Spécifications

Spécification État Commentaires
DOM
La définition de 'ChildNode.replacewith()' dans cette spécification.
Standard évolutif Initial definition.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Support simple 54.0 49 (49) Pas de support Pas de support 39.0 Pas de support
Fonctionnalité Android Webview Firefox Mobile (Gecko) IE Mobile Edge Mobile Opera Mobile Safari Mobile Chrome pour Android
Support simple ? 49.0 (49) Pas de support ? 39.0 Pas de support 54.0

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : vTripes
 Dernière mise à jour par : vTripes,