如何从文本块中的跨度展开文本?

时间:2013-03-24 20:45:27

标签: javascript

所以我有一个带有文字的大<div>块。 并且用户双击的字词包含在<span>元素中 我怎样才能删除那个span元素并将单词返回到它的正常位置,没有包裹它,所以整个文本将返回到起始位置?

编辑: 对不起我的缺席。 这是双击功能的代码 它包装了div,用户双击了span,然后将该类添加到该span。 看起来像那样!

function onDoubleClick(){
    var selection=window.getSelection().getRangeAt(0);
    var selectedText=selection.extractContents();
    var span=document.createElement("span");
    epic.get(span).addClass('highlightedText');
    span.appendChild(selectedText);
    selection.insertNode(span);
}

enter image description here

1 个答案:

答案 0 :(得分:2)

这可能是你想要的,但我希望评论中的恶魔'正则表达式'链接:P。如果<div>仅包含文本和跨度,或者还有许多其他(子)子节点Dom-Nodes,它也依赖于这一事实。

var html = $('#myDiv').html();
var new_html = html.replace(new RegExp('<span>[uU]ser</span>','gm'),'user');
$('#myDiv').html(new_html);

如果您更新问题,我可以为您提供更准确的答案,以缩小RegEx可能发生的冲突。