We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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 ChildNode de la liste des enfants de son parent par un ensemble d'objets Node (noeud) ou DOMString (chaîne de caractères).
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 d'objets Node (noeud) ou DOMString (chaîne de caractères) à remplacer.

Exceptions

Exemples

Utilisation de replaceWith()

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

enfant.replaceWith(span);

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

ChildNode.replaceWith() n'est pas accessible

La méthode replaceWith() n'est pas comprise dans une instruction with. Voir Symbol.unscopables pour plus d'informations.

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

Polyfill

Vous pouvez utiliser un polyfill pour la méthode replaceWith() pour Internet Explorer 10 et plus avec le code suivant :

function ReplaceWith(Ele) {
  'use-strict'; // For safari, and IE > 10
  var parent = this.parentNode,
      i = arguments.length,
      firstIsNode = +(parent && typeof Ele === 'object');
  if (!parent) return;
  
  while (i-- > firstIsNode){
    if (parent && typeof arguments[i] !== 'object'){
      arguments[i] = document.createTextNode(arguments[i]);
    } if (!parent && arguments[i].parentNode){
      arguments[i].parentNode.removeChild(arguments[i]);
      continue;
    }
    parent.insertBefore(this.previousSibling, arguments[i]);
  }
  if (firstIsNode) parent.replaceChild(Ele, this);
}
if (!Element.prototype.replaceWith)
    Element.prototype.replaceWith = ReplaceWith;
if (!CharacterData.prototype.replaceWith)
    CharacterData.prototype.replaceWith = ReplaceWith;
if (!DocumentType.prototype.replaceWith) 
    DocumentType.prototype.replaceWith = ReplaceWith;

Spécification

Spécification État Commentaire
DOM
La définition de 'ChildNode.replacewith()' dans cette spécification.
Standard évolutif Définition initiale.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple54 Non49 Non39 Non
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple5454 Non4939 Non6.0

Voir aussi

Étiquettes et contributeurs liés au document

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