我有一个函数,可以获取选定的文本,通过鼠标选择文本,并将其添加到变量中。我想在所选文本中的该变量周围添加标签 - 在该段落中。
$("p").live("mouseup",function() {
selection = getSelectedText();
if(selection.length >= 3) {
var $spn = $("<span></span>").html(selection).addClass("selected");
$("p").wrap($spn);
}
});
//Grab selected text
function getSelectedText(){
if(window.getSelection){
return window.getSelection().toString();
}
else if(document.getSelection){
return document.getSelection();
}
else if(document.selection){
return document.selection.createRange().text;
}
}
我可以获得文本选择变量,但不是放置 <span></span>
围绕段落 <p>
中选定的文本,我的函数将其包装在外面。
如何替换段落中的它? 谢谢。
最佳答案
这就是出错的地方:
var $spn = $("<span></span>").html(selection).addClass("selected");
$("p").wrap($spn);
这意味着您将 span
包裹在段落周围。
我认为你的意思是做这样的事情:
var spn = '<span class="selected">' + selection + '</span>';
$(this).html($(this).html().replace(selection, spn));
关于jQuery 选择文本并在段落中添加跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236982/