用另一个文本替换选定的

时间:2013-01-07 12:49:58

标签: javascript jquery html5

我正在尝试用其他文字替换所选文字 考虑以下是文本行。

  

Hello world.Good早上好。你好,世界。早上好。

如果我选择第二个morning文字,我想在晚上替换早晨文本。所以输出需要看起来像这样:

  

Hello world.Good早上好。你好,世界。晚安。

我尝试了替换功能,但它正在取代第一天早上的文字 有人可以建议解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

要获取HTML5中的当前选择,请使用DOM Range API

要编辑选择,可以使用Selections API

另请参阅:Where did the Text Selection API go?

如果您使用jQuery,请使用wrapSelection plugin

答案 1 :(得分:0)

你可以这样做:

SEE DEMO

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');
});