【问题标题】:is there a javascript/jquery selector for text selected by mouse cursor?是否有用于鼠标光标选择的文本的 javascript/jquery 选择器?
【发布时间】:2011-10-01 06:27:39
【问题描述】:

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

【问题讨论】:

  • 您希望突出显示选定的文本!我说得对吗??
  • 对于选定的文本,不仅仅是一个 jQuery 选择器,您需要绑定一个事件处理程序并跳过几个 JavaScript 循环来获得选择并修改文本区域。

标签: javascript jquery html selector


【解决方案1】:

有一个相当不错的直接 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);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      相关资源
      最近更新 更多