существует ли селектор javascript / jquery для текста, выделенного курсором мыши?

#javascript #jquery #html #selector

#javascript #jquery #HTML #селектор

Вопрос:

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

Комментарии:

1. вы хотите, чтобы выделенный текст был выделен!! я правильно понял??

2. Существует не просто селектор jQuery для выделенного текста, вам нужно будет привязать обработчик событий и перейти через несколько обручей JavaScript, чтобы добраться до выделения и изменить текстовую область.

3. mark.koli.ch/2009/09/…

Ответ №1:

Есть простое решение 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);
  

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