From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/text/splittext/index.html | 118 +++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 files/ja/web/api/text/splittext/index.html (limited to 'files/ja/web/api/text/splittext') diff --git a/files/ja/web/api/text/splittext/index.html b/files/ja/web/api/text/splittext/index.html new file mode 100644 index 0000000000..a5895401d9 --- /dev/null +++ b/files/ja/web/api/text/splittext/index.html @@ -0,0 +1,118 @@ +--- +title: Text.splitText() +slug: Web/API/Text/splitText +tags: + - API + - DOM + - Method + - Text + - splitText + - メソッド +translation_of: Web/API/Text/splitText +--- +

{{APIRef("DOM")}}

+ +

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

+ +

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

+ +

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

+ +

構文

+ +
newNode = textNode.splitText(offset)
+
+ +

引数

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

返値

+ +

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

+ +

例外

+ +

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

+ +

+ +

この例では、 {{HTMLElement("p")}} のテキストが二つのテキストノードに分割され、 {{HTMLElement("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>
+ +

結果

+ +

{{EmbedLiveSample("Example", 700, 70)}}

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('DOM WHATWG', '#dom-text-splittext', 'Text.splitText')}}{{Spec2('DOM WHATWG')}}{{SpecName('DOM3 Core')}} から変更なし。
{{SpecName('DOM3 Core', 'core.html#ID-38853C1D', 'Text.splitText')}}{{Spec2('DOM3 Core')}}{{SpecName('DOM2 Core')}} から変更なし。
{{SpecName('DOM2 Core', 'core.html#ID-38853C1D', 'Text.splitText')}}{{Spec2('DOM2 Core')}}{{SpecName('DOM1')}} から変更なし。
{{SpecName('DOM1', 'level-one-core.html#ID-38853C1D', 'Text.splitText')}}{{Spec2('DOM1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.Text.splitText")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf