DOM и React Senior DOM на практике обновлено

Работа с выделением

Условие

wrapSelection(range, tag): оберни выделенный диапазон в новый элемент с указанным тегом. Верни созданный элемент.

Что проверяют тесты

  • оборачивает выделенное

  • пустое выделение даёт пустую обёртку

Как подойти

Range и Selection - основа любого редактора текста: подсветка, комментарии к фрагменту, форматирование. Порядок операций важен: сначала extractContents (диапазон схлопывается в точку), потом insertNode. surroundContents короче, но бросает исключение, если диапазон пересекает границы элементов - на реальном тексте это происходит постоянно.

Подсказки: 2
  1. extractContents вырезает содержимое диапазона и возвращает фрагмент.
  2. После извлечения диапазон схлопывается - туда и вставляем обёртку.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.