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

is there a javascript/jquery selector for text selected by mouse cursor?

本文关键字:光标 鼠标 选择 文本 用于 选择器 有一个 javascript jquery 是否      更新时间:2023-09-26

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

有一个直接的javascript解决方案,这是相当不错的…只使用inputElement.selectionStartinputElement.selectionEnd

这是有帮助的注意,这只是Dom元素,所以你必须采取你的jQuery选择器为你的textarea和添加[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);

为什么不用php呢?PHP + jQuery将帮助你。

示例表单:

<form action="highlight.php" method="post">
My textarea:<br />
<textarea cols="10" rows="10" name="textarea"></textarea>
<input type="submit" value="Wrap <p> around" />
</form>

PHP处理表单并将

包裹起来:

<?php
$text = $_POST[''];
$wrap = '<p>'.$text.'</p>';
echo '<textarea cols="10" rows="10">'.$wrap.'</p>';
?>

你可以删除echo $wrap,但我更喜欢你学习jQuery和如何使用它来执行php脚本。

我没有那么多的jQuery经验来告诉你如何,但学习它或谷歌"如何使用jQuery执行php脚本",我相信你会找到一些东西=)