1

所以我有大块<div>的文字。单词用户双击正在包装<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);
}

在此处输入图像描述

4

1 回答 1

2

这可能是您想要的,但我希望评论中有邪恶的“HTML 中的正则表达式”链接:P。它还取决于是否<div>只有文本和跨度在其中或还有许多其他(子)子 Dom 节点。

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

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

于 2013-03-24T20:51:20.447 回答