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

Метод Range.surroundContents() перемещает содержимое {{ domxref("Range") }} в новый элемент, который расположится в начале указанного диапазона.

Этот метод приблизительно эквивалентен коду newNode.appendChild(range.extractContents()); range.insertNode(newNode). После его работы крайние точки диапазона будут включать в себя newNode.

Если {{ domxref("Range") }} разделяет любой не текстовый элемент хотя бы одной точкой, произойдёт исключение. В отличие от альтернативы выше, если в диапазоне есть частично выделенные элементы, они не будут клонированы, а вместо этого производит ошибка.

Синтаксис

range.surroundContents(newNode);

Параметры

newNode
Элемент который будет содержать в себе выделенный текст. 

Пример

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

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

Спецификации

Спецификация Статус Комментарий
{{SpecName('DOM WHATWG', '#dom-range-surroundcontents', 'Range.surroundContents()')}} {{Spec2('DOM WHATWG')}} Без изменений.
{{SpecName('DOM2 Traversal_Range', 'ranges.html#Level2-Range-method-surroundContents', 'Range.surroundContents()')}} {{Spec2('DOM2 Traversal_Range')}} Начальная спецификация.

Совместимость

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.0")}} [1] 9.0 9.0 {{CompatVersionUnknown}}
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatVersionUnknown}} {{CompatGeckoMobile("1.0")}} [1] 9.0 9.0 {{CompatVersionUnknown}}

[1] Firefox до версии 1.5, содержит ошибку, которая не позволяет отработать Range.surroundContents если начало и конец диапазона являются одним текстовым элементом ({{bug(135928)}}).

Смотрите также