Есть ли Javascript / JQuery селектор для текста, выделенного курсором мыши? - PullRequest
5 голосов
/ 01 октября 2011

есть ли селектор jquery для текста, который подсвечивается после его перетаскивания курсором мыши?Например, я хочу выделить текст, который я ввел в мое поле textarea, нажать кнопку, которая поместит теги <p> вокруг текста, выделенного курсором мыши.Было бы предпочтительнее решение без плагинов, спасибо.

Ответы [ 2 ]

4 голосов
/ 01 октября 2011

Есть довольно простое решение javascript, которое очень приятно ... просто используйте inputElement.selectionStart и inputElement.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);
1 голос
/ 01 октября 2011

Почему вы не используете 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, чтобы рассказать вам, как это сделать, но изучите его или в Google "Как выполнить скрипт php с помощью jquery", и я уверен, что вы что-то найдете =)

...