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

发布于 2024-12-07 12:36:47 字数 163 浏览 0 评论 0原文

是否有一个 jquery 选择器用于在鼠标光标拖动后突出显示的文本?例如,我想选择在 textarea 字段中输入的文本,单击一个按钮,该按钮会在我突出显示的文本周围放置

标记用我的鼠标光标。首选非插件解决方案,谢谢。

is there a jquery selector for text that is highlighted after its dragged over by the mouse cursor? For example, I want to select text that I've typed into my textarea field, click a button, which puts <p> tags around the text I've highlighted with my mouse cursor. A non-plugin solution would be preferred, thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

や莫失莫忘 2024-12-14 12:36:47

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

值得注意的是,这只是在 Dom 元素上,所以你必须为你的文本区域使用 jQuery 选择器并添加 [0] 来获取元素本身,即。 $("#myTextArea")[0].selectionStart

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

标记。

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

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

There's a straight up javascript solution that's pretty nice... just use inputElement.selectionStart and inputElement.selectionEnd .

It's helpful to note that this is just on Dom elements, so you'll have to take your jQuery selector for your textarea and add [0] to get the element itself, ie. $("#myTextArea")[0].selectionStart.

From there you can do some string work and add in your <p> tags at the appropriate indexes.

I haven't tested this, but it should work...

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);
吖咩 2024-12-14 12:36:47

你为什么不使用 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 脚本”,我相信你会找到一些东西 =)

Why dont you use php for this? PHP + jQuery will help you.

Example form:

<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 to process the form and wrap

around it:

<?php
$text = $_POST[''];
$wrap = '<p>'.$text.'</p>';

echo '<textarea cols="10" rows="10">'.$wrap.'</p>';
?>

You can remove echo $wrap, but i prefer you learn jQuery and how you can use it to execute a php script.

I Dont have that much jQuery experience to tell you how, but learn it or google "How to execute php script with jquery" and im sure you will find something =)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文