Как сделать wrap() с выделением текста из getSelectedText()?

Я хочу деформировать div вокруг выделенного текста, но не знаю, как это сделать проще всего?

Я ловлю выделенный текст,

myselection = window.getSelection();

Например, у нас есть "123456789", а я выбрал "456" Я хочу в конце,

"123<div>456</div>789"

Я знаю, что это должно быть возможно с помощью wrap(), но обычно я использую его каждый раз с селектором как своего рода классом или идентификатором. Как я могу использовать функцию wrap() для объекта выбора?

Спасибо за помощь!

вы можете получить узел от getSelection().anchorNode. Используйте данные узла для поиска строки и подготовки нового элемента с клонированными свойствами. Затем скройте старый элемент и вставьте новый подготовленный элемент в то же место, что и старый элемент.

Cerlin 26.02.2019 08:24

это звучит немного сложно? Не могли бы вы сделать мне небольшой пример, я сейчас не знаю, что я думаю о якорном узле, который я должен использовать каким образом ..?

mikeD 26.02.2019 08:28

нет, это не дубликат! здесь мы должны начать с объекта-селектора, поэтому я думаю, что мы должны оставить вопросы как есть!

mikeD 26.02.2019 08:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
39
1

Ответы 1

Для начала можно попробовать что-то вроде этого

let selectedString = window.getSelection().toString()
let selectedNode = $(window.getSelection().anchorNode).parent()
let fullText = selectedNode.get(0).innerHTML
let finalText = fullText.replace(selectedString, "<span style='background:red'>" + selectedString + "</span>")
selectedNode.get(0).innerHTML = finalText

Другие вопросы по теме