Javascript 选择开始以文本区域结束

Javascript 选择开始以文本区域结束,javascript,jquery,editor,Javascript,Jquery,Editor,我遇到了一个恼人的问题,我似乎无法在文本区域中获取所选文本的开始和结束索引,我得到的是未定义的,如下所示: $('#myarea').selectionStart; // return undefined 我做错什么了吗?试试: $('#myarea')[0].selectionStart; 为什么??jQuery选择器不返回实际的DOM元素,而是返回包装好的jQuery集合。jQuery使实际的DOM元素可以作为数组访问,因此如果您想使用第一个匹配的元素(在本例中,是唯一的一个,因为它是按

我遇到了一个恼人的问题,我似乎无法在文本区域中获取所选文本的开始和结束索引,我得到的是未定义的,如下所示:

$('#myarea').selectionStart; // return undefined
我做错什么了吗?

试试:

$('#myarea')[0].selectionStart;

为什么??jQuery选择器不返回实际的DOM元素,而是返回包装好的jQuery集合。jQuery使实际的DOM元素可以作为数组访问,因此如果您想使用第一个匹配的元素(在本例中,是唯一的一个,因为它是按ID匹配的),您可以执行上述操作。

自jQuery 1.6版以来,您可以使用以下方法:

获取:

设置:


天哪!有用的晦涩知识!谢谢这是我早上拼图的最后一块。先生,你是个救生员!顺便说一句,如果有人想在保持插入符号位置的同时使用[0]自动替换输入字段中的某些字符,请记住也要将[0]应用于“setSelectionRange”。我不想太冲动,但这与本机属性相比有什么优势?O.O本地版本没有任何兼容性问题,我只看到它会更长,当然也会更慢。。
// always start at 0

var start = $('#myarea').prop('selectionStart');
var end = $('#myarea').prop('selectionEnd');
$('#myarea').prop('selectionStart', 10);
$('#myarea').prop('selectionEnd', 15);

// or short hand by

$('#myarea').prop({
    'selectionStart': 10,
    'selectionEnd': 15
});