Text.splitText()

Text.splitText() メソッドは、 Text ノードを指定したオフセットで二つに分割し、両方のノードを兄弟としてツリーの中に保持します。

分割後、現在のノードには指定したオフセット位置までのすべてのコンテンツが設定され、新規作成された同じ種類のノードには残りのテキストが設定されます。新しく作成されたノードは呼び出し元に返されます。元のノードに親があった場合、新しいノードは元のノードの次の兄弟として挿入されます。オフセットが元のノードの長さと等しい場合、新しく作成されたノードにはデータがありません。

分割されたテキストノードは、 Node.normalize() メソッドを用いて結合することができます。

構文

newNode = textNode.splitText(offset)

引数

offset
テキストノードを分割する直前の位置。

返値

新しく生成された Text ノードを返し、指定されたオフセット位置移行のテキストが格納されます。

例外

DOMException で値が INDEX_SIZE_ERR のものは、指定されたオフセットが負の値であるか、ノードのテキストの16ビット単位の文字数よりも大きい場合に発生します。 DOMException で値が NO_MODIFICATION_ALLOWED_ERR のものは、ノードが読取専用の場合に発生します。

この例では、 <p> のテキストが二つのテキストノードに分割され、 <u> がその間に挿入されます。

HTML

<p>foobar</p>

JavaScript

const p = document.querySelector('p');

// <p> の中身をテキストノードとして取得
const foobar = p.firstChild;

// 'foobar' を二つのテキストノード 'foo' と 'bar' に分割し、
// 'bar' を const として保存
const bar = foobar.splitText(3);

// <u> 要素を作成して ' new content ' を含める
const u = document.createElement('u');
u.appendChild(document.createTextNode(' new content '));

// <u> を 'bar' の前に追加
p.insertBefore(u, bar);

// 結果: <p>foo<u> new content </u>bar</p>

結果

仕様書

仕様書 状態 備考
DOM
Text.splitText の定義
現行の標準 Document Object Model (DOM) Level 3 Core Specification から変更なし。
Document Object Model (DOM) Level 3 Core Specification
Text.splitText の定義
廃止された Document Object Model (DOM) Level 2 Core Specification から変更なし。
Document Object Model (DOM) Level 2 Core Specification
Text.splitText の定義
廃止された Document Object Model (DOM) Level 1 Specification から変更なし。
Document Object Model (DOM) Level 1 Specification
Text.splitText の定義
廃止された 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
splitTextChrome 完全対応 1
補足
完全対応 1
補足
補足 Before Chrome 30, the offset argument was optional.
Edge 完全対応 12Firefox 完全対応 1IE 完全対応 ありOpera 完全対応 あり
補足
完全対応 あり
補足
補足 Before Opera 17, the offset argument was optional.
Safari 完全対応 あり
補足
完全対応 あり
補足
補足 The offset argument is optional.
WebView Android 完全対応 あり
補足
完全対応 あり
補足
補足 Before version 4.4, the offset argument was optional.
Chrome Android 完全対応 18
補足
完全対応 18
補足
補足 Before Chrome 30, the offset argument was optional.
Firefox Android 完全対応 4Opera Android 完全対応 あり
補足
完全対応 あり
補足
補足 Before Opera 17, the offset argument was optional.
Safari iOS 完全対応 あり
補足
完全対応 あり
補足
補足 The offset argument is optional.
Samsung Internet Android 完全対応 1.0
補足
完全対応 1.0
補足
補足 Before Samsung Internet 2.0, the offset argument was optional.

凡例

完全対応  
完全対応
実装ノートを参照してください。
実装ノートを参照してください。

関連情報