I'm having this annoying problem, I can't seem to get the starting and ending index of the selected text in a textarea, all I get is undefined like this:
$('#myarea').selectionStart; // return undefined
Did I do something wrong?
Try:
$('#myarea')[0].selectionStart;
Why? A jQuery selector does not return the actual DOM elements but the wrapped jQuery collection. jQuery makes the actual DOM elements accessible as an array, so if you wanted to use the 1st matched element (and in this case, the only one, since it's by ID), you would do the above.
Since jQuery version 1.6, you can use .prop() method:
Get:
// always start at 0 var start = $('#myarea').prop('selectionStart'); var end = $('#myarea').prop('selectionEnd');
Set:
$('#myarea').prop('selectionStart', 10); $('#myarea').prop('selectionEnd', 15); // or short hand by $('#myarea').prop({ 'selectionStart': 10, 'selectionEnd': 15 });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With