Задать вопрос

Как обернуть все что идет после div?

Имеется div, после которого идет текст и другие элементы.
<div class="block">Some text</div>
<hr>
More text
<br>
Again more text

Как можно обернуть все, то что идет после div.block, включая текст, hr и br в div.another__block
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
После кого и во что надо оборачивать:

const block = document.querySelector('.block');
const wrapper = document.createElement('div');
wrapper.classList.add('another__block');

Вариант раз - вычисляем индекс блока внутри родителя, вырезаем из родителя подмассив вложенных узлов, начиная с индекс плюс один, вставляем в обёртку:

const parent = block.parentNode;
const childNodes = [...parent.childNodes];
wrapper.append(...childNodes.slice(childNodes.indexOf(block) + 1));
parent.append(wrapper);

Вариант два - пока у блока есть следующий узел, добавляем его в обёртку:

for (; block.nextSibling; wrapper.appendChild(block.nextSibling)) ;
block.after(wrapper);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы