selectionStart-End with textareas

Den*_*nis 32 javascript jquery editor

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

$('#myarea').selectionStart; // return undefined
Run Code Online (Sandbox Code Playgroud)

我做错什么了吗?

Pao*_*ino 81

尝试:

$('#myarea')[0].selectionStart;
Run Code Online (Sandbox Code Playgroud)

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

  • 神圣的垃圾有用的晦涩知识!谢谢 (9认同)
  • 这是我早上JS拼图的最后一部分.先生,你是一个救生员!顺便说一句,对于任何想要使用它来自动替换输入字段中的某些字符同时保持插入位置的人:记住也要将[0]应用到"setSelectionRange". (2认同)

Tân*_*Tân 12

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

得到:

// always start at 0

var start = $('#myarea').prop('selectionStart');
var end = $('#myarea').prop('selectionEnd');
Run Code Online (Sandbox Code Playgroud)

组:

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

// or short hand by

$('#myarea').prop({
    'selectionStart': 10,
    'selectionEnd': 15
});
Run Code Online (Sandbox Code Playgroud)