jQuery 选择文本并在段落中添加跨度

标签 jquery select text

我有一个函数,可以获取选定的文本,通过鼠标选择文本,并将其添加到变量中。我想在所选文本中的该变量周围添加标签 - 在该段落中。

$("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/

相关文章:

css - 通过 CSS 样式化选择框

android - 在android中设置paint/fontmetrics的领先

javascript - jquery position() 在 safari 和 chrome 中无法正常工作

jquery - 使用 JQUERY 检查树中的所有子复选框

javascript - 如果按下后退按钮,如何使用户保持在同一页面?

file - 在 pdf 文件的第一页上添加文本

javascript - 如何转义 Jquery 字符串中的字符

javascript - jQuery ScrollTo 跳过并且是 Notchy

php - 如何选择不同的行并在另一个表中交叉检查?

mysql 使用相同数字的名称计数