如何在contenteditable div中包装和解包所选文本?

时间:2013-12-09 07:11:29

标签: javascript jquery contenteditable rangy

JSFIDDLE DEMO

JsFiddle演示完全适用于换行文本,但我不知道它是如何展开所选文本的。

 range.text = '[' + tag + ']' + selectedText + '[/' + tag + ']';

如何解包标签并获取原始选定文本。

2 个答案:

答案 0 :(得分:1)

如果您不想使用jQuery,可以使用以下内容:

var element = document.createElement('span');
element.originalText = selectedText;
element.textContent = '[' + tag + ']' + selectedText + '[/' + tag + ']';
element.onclick = function() {
    this.parentNode.replaceChild(document.createTextNode(this.originalText), this);  
};
range.insertNode(element);

我在这里使用了span元素,而不是textNode,它很容易用于您的目的。但是你需要注意浏览器的兼容性。

答案 1 :(得分:0)

jQuery将为您节省很多麻烦:

jQuery wrap docs

jQuery unwrap() docs

$( 'findyourtaghere')内容()解开();