Я использую это:
/* Returns 3 strings, the part before the selection, the part after the selection and the selected part */
function getSelected()
{
var u = editor.val();
var start = editor.get(0).selectionStart;
var end = editor.get(0).selectionEnd;
return [u.substring(0, start), u.substring(end), u.substring(start, end)];
}
, где редактор - $("#editor")
или любой другой идентификатор вашего текстового поля / поля ввода.
Использование:
var select = getSelected()
editor.val(select[0] + '<h1>'+ select[2] + '</h1>' + select[1]);
Завернет выделенный текст в H1.Если ничего не выбрано, он просто добавит пустой H1, но вы можете добавить проверки и функциональность по своему вкусу.
** Не тестируется во всех браузерах, работает в Chrome, хотя **