我遇到了这个恼人的问题,我似乎无法在textarea中获取所选文本的起始和结束索引,所有我得到的都是这样的:
$('#myarea').selectionStart; // return undefined
我做错了吗?
答案 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插件。