--- title: Range.surroundContents() slug: Web/API/Range/surroundContents translation_of: Web/API/Range/surroundContents ---
{{ApiRef("DOM")}}

La méthode Range.surroundContents() déplace le contenu du {{ domxref("Range") }} dans un nouveau nœud, plaçant le nouveau nœud au début du range spécifié.

Cette méthode est à peu près équivalente à :

newNode.appendChild(range.extractContents());
range.insertNode(newNode)

Après déplacement, les bornes du range incluent newNode.

Cependant, une exception sera levée si le {{ domxref("Range") }} découpe un nœud non-{{ domxref("Text") }} sur une seule de ses bornes. C’est-à-dire que, contrairement à l’alternative ci-dessus, s’il y a des nœuds partiellement sélectionnés, ils ne seront pas clonés ; à la place, l’opération échouera.

Syntaxe

range.surroundContents(newNode);

Paramètres

newNode
Un {{ domxref("Node") }} à insérer à l’emplacement du range.

Exemple

var range = document.createRange();
var newNode = document.createElement("p");

range.selectNode(document.getElementsByTagName("div").item(0));
range.surroundContents(newNode);

Spécifications

Spécification Statut Commentaire
{{SpecName('DOM WHATWG', '#dom-range-surroundcontents', 'Range.surroundContents()')}} {{Spec2('DOM WHATWG')}} Pas de changement.
{{SpecName('DOM2 Traversal_Range', 'ranges.html#Level2-Range-method-surroundContents', 'Range.surroundContents()')}} {{Spec2('DOM2 Traversal_Range')}} Spécification initiale.

Compatibilité des navigateurs

{{Compat("api.Range.surroundContents")}}

Voir aussi