Range: surroundContents() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Range.surroundContents()
メソッドは Range
の内容を新しいノードに移動し、新しいノードを指定された範囲の先頭に配置します。
このメソッドは newNode.appendChild(range.extractContents()); range.insertNode(newNode)
とほぼ同じです。
囲んだ後の range
の境界点は newNode
を含みます。
ただし、Range
がText
でないノードをその境界点の 1 つだけで分割した場合は例外が発生します。つまり、上記の代案とは異なり、部分的に選択されたノードがある場合、それらのノードは複製されず、代わりに処理が失敗します。
構文
js
surroundContents(newParent)
引数
返値
なし (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);
結果
仕様書
Specification |
---|
DOM Standard # dom-range-surroundcontents |
ブラウザーの互換性
BCD tables only load in the browser