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

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

Как удалить классы у последних двух элементов снизу?
<ul>
   <li class= "elem"> 1 </li>
   <li class= "elem"> 2 </li>
   <li class= "elem"> 3 </li>
   <li class= "elem"> 4 </li>
   <li class= "elem"> 5 </li>
   <li class= "elem"> 6 </li>
</ul>
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Где элементы находятся, какой класс и у скольких надо удалить:

const parent = document.querySelector('ul');
const className = 'elem';
const count = 2;

Удаляем:

for (let i = parent.children.length, j = count; i-- && j--;) {
  parent.children[i].classList.remove(className);
}

// или

Array.prototype.forEach.call(parent.children, (n, i, a) => {
  n.classList.toggle(className, i + count < a.length);
});

// или

parent.querySelectorAll(`.${className}:nth-last-child(-n + ${count})`).forEach(n => {
  n.classList.value = n.classList.value.replace(RegExp(`(^| )${className}( |$)`), ' ').trim();
});

// или

for (
  let i = 0, el = parent.lastElementChild;
  i < count && el;
  i++, el = el.previousElementSibling
) {
  el.className = el.className.split(' ').filter(n => n !== className).join(' ');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 04:08
6000 руб./за проект
21 янв. 2025, в 23:55
20000 руб./за проект
21 янв. 2025, в 23:35
80000 руб./за проект