--- title: Range.surroundContents slug: Web/API/Range/surroundContents tags: - API - DOM - Range - 方法 - 范围 translation_of: Web/API/Range/surroundContents ---
{{ ApiRef("Range") }}

Range.surroundContents() 方法将 {{ domxref("Range") }} 对象的内容移动到一个新的节点,并将新节点放到这个范围的起始处。

这个方法与 newNode.appendChild(range.extractContents()); range.insertNode(newNode) 等价。应用以后, newNode 包含在 range 的边界点中。

然而,如果 {{ domxref("Range") }} 断开了一个非 {{ domxref("Text") }} 节点,只包含了节点的其中一个边界点,就会抛出异常。也就是说,不像上述的等价方法,如果节点仅有一部分被选中,则不会被克隆,整个操作会失败。

语法

range.surroundContents(newParent);

参数

newParent
一个包含内容的 {{ domxref("Node") }}。

示例

HTML

<span class="header-text">Put this in a headline</span>

JavaScript

const range = document.createRange();
const newParent = document.createElement('h1');

range.selectNode(document.querySelector('.header-text'));
range.surroundContents(newParent);

结果

规范

规范 状态 注释
{{SpecName('DOM WHATWG', '#dom-range-surroundcontents', 'Range.surroundContents()')}} {{Spec2('DOM WHATWG')}} No change.
{{SpecName('DOM2 Traversal_Range', 'ranges.html#Level2-Range-method-surroundContents', 'Range.surroundContents()')}} {{Spec2('DOM2 Traversal_Range')}} Initial specification.

浏览器兼容性

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

参见