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

Как добавить перед последним итемом элемент?

есть разметка
<div class="wrap">
  <div class="item">1</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">4</div>
  <div class="item">6</div>
</div>

как добавить перед последним элементом разметку?
<div class="item active">5</div>

через js
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Куда и что надо добавить:

const wrapper = document.querySelector('.wrap');
const html = '<div class="item active">5</div>';

Как получить последний вложенный элемент:

const last = wrapper.lastElementChild;

// или

const last = wrapper.querySelector(':scope > :last-child');

// или

const last = wrapper.children[wrapper.children.length - 1];

// или

const [ last ] = Array.prototype.slice.call(wrapper.children, -1);

Добавляем:

last.insertAdjacentHTML('beforebegin', html);

// или

last.before(...new DOMParser().parseFromString(html, 'text/html').body.childNodes);

// или

wrapper.insertBefore(document.createRange().createContextualFragment(html), last);

// или

last.outerHTML = html + last.outerHTML;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 11:07
10000 руб./за проект
23 дек. 2024, в 10:43
5000 руб./за проект
23 дек. 2024, в 10:32
2000 руб./за проект