我有一个获取所选文本的函数,通过鼠标选择文本,并将其添加到变量中.我想在所选文本中的该变量周围添加标签 – 在该段落中.
$("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);
这意味着你要围绕段落包装跨度.
我认为你的意思是做这样的事情:
var spn = '<span class="selected">' + selection + '</span>'; $(this).html($(this).html().replace(selection,spn));