#javascript #jquery #html #selector
#javascript #jquery #HTML #селектор
Вопрос:
существует ли селектор jquery для текста, который выделяется после его перетаскивания курсором мыши? Например, я хочу выделить текст, который я ввел в свое textarea
поле, нажать кнопку, которая помещает <p>
теги вокруг текста, который я выделил курсором мыши. Было бы предпочтительнее решение без плагина, спасибо.
Комментарии:
1. вы хотите, чтобы выделенный текст был выделен!! я правильно понял??
2. Существует не просто селектор jQuery для выделенного текста, вам нужно будет привязать обработчик событий и перейти через несколько обручей JavaScript, чтобы добраться до выделения и изменить текстовую область.
Ответ №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», и я уверен, что вы что-нибудь найдете =)