Как обернуть и развернуть выделенный текст в contenteditable div?

JSFIDDLE DEMO

JsFiddle Demo полностью работает для переноса текста, но я не знаю, как это развернуть выделенный текст.

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

как это развернуть тег и получить оригинальный выделенный текст.

3 ответа

Если вы не хотите использовать 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, его легко использовать в ваших целях. Но вам нужно позаботиться о совместимости браузера.

JQuery избавит вас от многих проблем здесь:

JQuery Wrap Документы

jQuery unwrap() документы

$('Findyourtaghere') содержание () разворачивать ()..;

Я все еще не нашел то, что искал, но я нашел решение для того, что вы ищете, эта единственная строка возьмет родительский элемент выделенного текста и удалит его, сохраняя текст там, где он есть, если вы не выберете что-то другое, кроме текста, например, элемент, но тогда это была бы другая проблема.

      $(window.getSelection().anchorNode.parentElement).unwrap();
Другие вопросы по тегам