0

選択したテキストを別のテキストに置き換えようとしています。
以下がテキスト行であると考えてください。

Hello world. おはようございます。こんにちは世界。おはようございます。

ここで 2 番目morningのテキストを選択し、朝のテキストを夜に置き換えたい場合。そのため、出力は次のようになる必要があります。

Hello world. おはようございます。こんにちは世界。おやすみなさい。

差し替え機能を試してみたのですが、朝一番のテキスト差し替えです。
誰でもこれに対する解決策を提案できますか?

4

2 に答える 2

3

HTML5 で現在の選択範囲を取得するには、DOM Range APIを使用します。

選択を編集するには、Selections APIを使用できます。

参照:テキスト選択 API はどこへ行ったのですか?

jQuery を使用する場合は、wrapSelection プラグインを使用します

于 2013-01-07T12:59:09.540 に答える
1

次のようにできます。

デモを見る

function swapSelection(swapText) {
  var sel = window.getSelection ? window.getSelection() : document.selection.createRange();
  if (sel != "") {
    if (sel.getRangeAt) {
      var range = sel.getRangeAt(0);
      var newNode = document.createElement("span");
      newNode.setAttribute('class', 'swapclass');
      range.surroundContents(newNode);
    } else {
      sel.pasteHTML('<span class="swapclass">' + sel.htmlText + '</span>');

    }
    $('.swapclass').replaceWith(swapText);
  }
}

$('button').click(function () {
  swapSelection('night');
});
于 2013-01-07T13:18:47.903 に答える