范围:surroundContents() 方法

Range.surroundContents() 方法将 Range 的内容移到一个新节点中,并将新节点放置在指定范围的开头。

此方法几乎等同于 newNode.appendChild(range.extractContents()); range.insertNode(newNode)。包围后,range 的边界点包含 newNode

但是,如果 Range 使用其中一个边界点来分割非 Text 节点,则会抛出异常。也就是说,与上面的替代方法不同,如果存在部分选定的节点,它们不会被克隆,而是操作将失败。

语法

js
surroundContents(newParent)

参数

newParent

用于包围内容的 Node

返回值

无 (undefined).

示例

HTML

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

JavaScript

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

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

结果

规范

规范
DOM 标准
# dom-range-surroundcontents

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅