是否有一个javascript/jquery选择器用于鼠标光标选择的文本?

use*_*510 5 html javascript jquery selector

是否有一个jquery选择器用于在被鼠标光标拖动后突出显示的文本?例如,我想选择我在我的textarea字段中输入的文本,单击一个按钮,该按钮将<p>标记放在我用鼠标光标突出显示的文本周围.非优先考虑非插件解决方案.

Cha*_*bot 5

有一个非常好的直接 JavaScript 解决方案...只需使用inputElement.selectionStartinputElement.selectionEnd

值得注意的是,这仅适用于 Dom 元素,因此您必须为文本区域使用 jQuery 选择器并添加 [0] 来获取元素本身,即。$("#myTextArea")[0].selectionStart

<p>从那里您可以执行一些字符串工作并在适当的索引处添加标签。

我还没有测试过这个,但它应该有效......

var selStart = $("#myTextArea")[0].selectionStart;
var selEnd = $("#myTextArea")[0].selectionEnd;

var originalString = $("#myTextArea").val();

var segment_1 = originalString.substr(0,selStart);
var segment_2 = originalString.substr(selStart,selEnd);
var segment_3 = originalString.substr(selEnd,originalString.length);

var finalString = segment_1 + "<p>" + segment_2 + "</p>" + segment_3;

$("#myTextArea").val(finalString);
Run Code Online (Sandbox Code Playgroud)