このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
HTMLTextAreaElement: setRangeText() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
setRangeText() はHTMLTextAreaElement インターフェイスのメソッドで、<textarea> 要素内のテキストの範囲を、引数として渡した新しいテキストで置き換えます。
追加のオプション引数には、変更するテキストの範囲の先頭、その範囲の末尾、およびテキストが更新された後に選択すべき<textarea> のどの部分を定義するキーワードを記載します。startSelection とendSelection 引数が指定されていない場合、その範囲が選択範囲であると見なされます。
最後の引数は、テキストが置換された後に選択範囲がどのように設定されるかを決定します。 可能な値は、"select" で新たに挿入されたテキストを選択し、"start" で選択範囲を挿入されたテキストの直前に移動し、"end" で選択範囲を挿入されたテキストの直後に移動し、既定値の"preserve" は選択範囲を維持しようとします。
それに加えてselect およびselectchange イベントが発行されます。
In this article
構文
setRangeText(replacement)setRangeText(replacement, startSelection)setRangeText(replacement, startSelection, endSelection)setRangeText(replacement, startSelection, endSelection, selectMode)引数
replacement挿入する文字列。
selectionStart省略可最初の選択文字のインデックス。インデックスが要素の値の長さを超えている場合は、値の末尾を指しているものとみなされます。
selectionEnd省略可最後に選択された文字の次の文字のインデックス。インデックスが要素の値の長さを超えている場合は、値の末尾を指しているものとみなされます。
selectionEndがselectionStartより小さい場合、どちらもselectionEndの値として扱われます。selectMode省略可select、start、end、または既定値のpreserveのいずれかのキーワードで、テキストが置き換えられた後に選択をどのように設定するかを定義します。
返値
なし (undefined)。
例
この例にあるボタンをクリックすると、テキストボックス内のテキストの一部を置き換えます。新しく挿入されたテキストは、その後で強調(選択)されます。
HTML
<label for="ta">空の入力フィールドの例:</label><textarea> このテキストは更新されません。</textarea><button>テキストを更新</button>JavaScript
const btn = document.getElementById("btn");btn.addEventListener("click", () => { changeText();});function changeText() { const textarea = document.getElementById("ta"); textarea.focus(); textarea.setRangeText("ALREADY", 14, 17, "select");}結果
仕様書
| Specification |
|---|
| HTML> # dom-textarea/input-setrangetext-dev> |