DOM и React Senior DOM на практике обновлено
Работа с выделением
Условие
wrapSelection(range, tag): оберни выделенный диапазон в новый элемент с указанным тегом. Верни созданный элемент.
Что проверяют тесты
оборачивает выделенное
пустое выделение даёт пустую обёртку
Как подойти
Range и Selection - основа любого редактора текста: подсветка, комментарии к фрагменту, форматирование. Порядок операций важен: сначала extractContents (диапазон схлопывается в точку), потом insertNode. surroundContents короче, но бросает исключение, если диапазон пересекает границы элементов - на реальном тексте это происходит постоянно.
Подсказки: 2
- extractContents вырезает содержимое диапазона и возвращает фрагмент.
- После извлечения диапазон схлопывается - туда и вставляем обёртку.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.