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

Как задать родительский элемент тегам?

Всем привет)
Есть такое расположение блоков html.
5c6d80cf15cbe921528220.png

Как с помощью jquery (или js) добавить родителя, тем div которые находятся после div с классом .block. То есть вот так:
5c6d8121b6eab331524158.png

Мой код:
$(".block").nextAll().each(function(index, el) {
  var parent = "<div class="parent"></div>"

  $(this).nextAll().wrapAll(parent);
  
});


Спасибо за помощь)
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Чьих next'ов надо обернуть и во что:

const itemsSelector = '.block';
const wrapperTag = 'div';
const wrapperClass = 'parent';

Оборачиваем:

const $items = $(itemsSelector);
$items.each(i => $items
  .eq(i)
  .nextUntil($items.get(i + 1))
  .wrapAll(`<${wrapperTag} class="${wrapperClass}">`)
);

или

document.querySelectorAll(itemsSelector).forEach((n, i, a) => {
  const elems = [];
  for (let el = n; (el = el.nextElementSibling) != a[-~i]; elems.push(el)) ;
  n.after(document.createElement(wrapperTag));
  n.nextSibling.classList.add(wrapperClass);
  n.nextSibling.append(...elems);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@tyzberd
если добавите класс для тех div которые нужно обернуть
то сначала использовать .nextAll() https://api.jquery.com/nextAll/
а потом .wrapAll()
Ответ написан
Ваш ответ на вопрос

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

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