@RushV

Как назначить класс всем ссылкам в блоке, кроме первой?

Есть следующая разметка:

<div class="col" id="lic-1">
  <a href="#"></a>
  <a href="#"></a>
  <a href="#"></a>
</div>
<div class="col" id="lic-2">
  <a href="#"></a>
  <a href="#"></a>
</div>

Надо внутри блоков #lic-1 и #lic-2 всем ссылкам, кроме первых, добавить класс "d-none". Как это сделать?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
document.querySelectorAll('.col').forEach(n => {
  n.querySelectorAll('a').forEach((m, i) => m.classList.toggle('d-none', !!i));
});

или (если перед первыми ссылками других элементов нет, и сами ссылки ни во что дополнительно не обёрнуты)

document.querySelectorAll('.col a').forEach(n => {
  n.classList.toggle('d-none', !!n.previousElementSibling);
});
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Чтобы отбросить первые элементы в каждом блоке вы можете использовать псевдоклассы. Пример:
document.querySelectorAll('div.col > a:not(:nth-child(1))').forEach(function(e, i) {
    e.classList.add('d-none');
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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