selectionStart-End with textareas

时间:2009-04-03 17:03:58

标签: javascript jquery editor

我遇到了这个恼人的问题,我似乎无法在textarea中获取所选文本的起始和结束索引,所有我得到的都是这样的:

$('#myarea').selectionStart; // return undefined

我做错了吗?

4 个答案:

答案 0 :(得分:77)

尝试:

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

为什么呢? jQuery选择器不返回实际的DOM元素,而是返回包装的jQuery集合。 jQuery使实际的DOM元素可以作为一个数组访问,所以如果你想使用第一个匹配的元素(在这种情况下,只有一个,因为它是由ID),你可以这样做。

答案 1 :(得分:12)

从jQuery 1.6开始,您可以使用.prop()方法:

得到:

// 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
});

答案 2 :(得分:2)

为了管理文字选择,我强烈推荐你fieldSelection plugin

答案 3 :(得分:0)

您可以使用的另一个插件,也是我唯一能够正确处理IE中换行符的插件,是我自己的Rangy Inputs插件。