--- title: ChildNode.replaceWith() slug: Web/API/ChildNode/replaceWith tags: - API - DOM - Méthodes - Noeuds - Reference translation_of: Web/API/ChildNode/replaceWith ---
{{APIRef("DOM")}}
La méthode ChildNode.replaceWith() remplace ce ChildNode de la liste des enfants de son parent par un ensemble d'objets {{domxref("Node")}} (noeud) ou {{domxref("DOMString")}} (chaîne de caractères).
Les objets {{domxref("DOMString")}} sont insérés en tant que noeuds {{domxref("Text")}}.

Syntaxe

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

Paramètres

nodes
Un ensemble d'objets {{domxref("Node")}} (noeud) ou {{domxref("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 {{jsxref("Symbol.unscopables")}} pour plus d'informations.

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

Prothèse d'émulation

Vous pouvez utiliser une prothèse d'émulation 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
{{SpecName('DOM WHATWG', '#dom-childnode-replacewith', 'ChildNode.replacewith()')}} {{Spec2('DOM WHATWG')}} Définition initiale.

Compatibilité des navigateurs

{{Compat("api.ChildNode.replaceWith")}}

Voir aussi