JQuery обернуть выделенный текст в текстовой области

Как я могу получить выбранный пользователем текст (только внутри textarea) и применить к нему действия, что-то вроде обтекания выделения.[#bold]selected text[/bold]

Ответы на вопрос(2)

Решение Вопроса

что Суфиана разместила здесьs код, переведенный в jquery с возможностью передавать теги open и close:

function wrapText(elementID, openTag, closeTag) {
    var textArea = $('#' + elementID);
    var len = textArea.val().length;
    var start = textArea[0].selectionStart;
    var end = textArea[0].selectionEnd;
    var selectedText = textArea.val().substring(start, end);
    var replacement = openTag + selectedText + closeTag;
    textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}

Использование тогда будет таким:

wrapText("myTextArea", "[#bold]", "[/bold]");
 DVG15 июн. 2012 г., 21:04
Если кто-нибудь захочет, вот здесьs кофейная версия этой функции:gist.github.com/2938205
 e_known09 авг. 2018 г., 20:24
Чтобы предотвратить добавление оболочки в начале текстовой области, когда текст не выделен, оберните последнюю строку из @richleland следующим образом:if(selectedText != 0) { textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len)); }
 brasofilo06 окт. 2014 г., 06:14
Хорошо, это делает трюкtextArea[0].selectionEnd = end + openTag.length + closeTag.length; (после последней строки).
 brasofilo06 окт. 2014 г., 05:56
Было бы неплохо, если бы окончательно выбранный текст включал вставку, а не только первоначальный выбор. Или, может быть, прыгнуть через каретку до конца новой строки ...
function wrapAsLink(url){
  var textarea = document.getElementById("myTa");
  var len = textarea.value.length;
  var start = textarea.selectionStart;
  var end = textarea.selectionEnd;
  var sel = textarea.value.substring(start, end);
  var replace = '<a href="'+url+'">' + sel + '</a>';
  textarea.value = textarea.value.substring(0,start) + replace +
  textarea.value.substring(end,len);
}

что вы хотите с некоторыми настройками. я нашел этоВот.

Ваш ответ на вопрос