我正在尝试用其他文字替换所选文字 考虑以下是文本行。
Hello world.Good早上好。你好,世界。早上好。
如果我选择第二个morning
文字,我想在晚上替换早晨文本。所以输出需要看起来像这样:
Hello world.Good早上好。你好,世界。晚安。
我尝试了替换功能,但它正在取代第一天早上的文字 有人可以建议解决这个问题吗?
答案 0 :(得分:3)
要获取HTML5中的当前选择,请使用DOM Range API。
要编辑选择,可以使用Selections API。
另请参阅:Where did the Text Selection API go?
如果您使用jQuery,请使用wrapSelection plugin
答案 1 :(得分:0)
你可以这样做:
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');
});