Аналогичная проблема описана здесь .
В итоге, если вы знаете начальный и конечный индексы (или начальные и конечные значения):
<script type="text/javascript">
function createSelection(field, start, end) {
if (field.createTextRange) {
var selRange = field.createTextRange();
selRange.collapse(true);
selRange.moveStart('character', start);
selRange.moveEnd('character', end - start);
selRange.select();
} else if (field.setSelectionRange) {
field.setSelectionRange(start, end);
} else if (field.selectionStart) {
field.selectionStart = start;
field.selectionEnd = end;
}
field.focus();
}
function select() {
var textArea = document.getElementById('one');
var startIndex = textArea.value.indexOf("help");
var endIndex = textArea.value.indexOf("do") + "do".length;
createSelection(textArea, startIndex, endIndex);
}
</script>
<a href="#" onclick="select();">Select Text</a>
<br />
<textarea id="one" rows="5" cols="25">Please help me do this!</textarea>
Чтобы получить значение выделенного текста, я бы порекомендовал jquery-fieldselection [http://github.com/localhost/jquery-fieldselection]