用另一个文本替换选定的

我试图用另一个文本替换选定的文本。
考虑以下是文本行。

你好世界。早上好。 你好,世界。 早上好。

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

你好世界。早上好。 你好,世界。 晚安。

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

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

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

另请参阅: 文本选择API在哪里?

如果您使用jQuery,那么使用wrapSelection插件

你可以这样做:

看看演示

 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('' + sel.htmlText + ''); } $('.swapclass').replaceWith(swapText); } } $('button').click(function () { swapSelection('night'); });