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

Как выбрать определенные элементы вверх по дереву?

Здравствуйте.
Есть такой пример меню jsfiddle.net
Как в данном случае мне сделать активными ссылки Категория 3 уровня => Категория 2 уровня => Категория 1 уровня, поднимаясь вверх по дереву?
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
.active {
  color: red;
}

const startFrom = '.link';
const parent = 'li';
const child = 'a';
const className = 'active';

$(startFrom).parents(parent).children(child).addClass(className);

// или

for (
  let el = document.querySelector(startFrom);
  el = el.parentNode.closest(parent);
  el.querySelectorAll(`:scope > ${child}`).forEach(n => n.classList.add(className))
) ;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fallus
@fallus
Ну, если вверх по дереву, относительно кликнутой ссылки, не выходя за рамки .nav, то так:

$('.link').on('click', function(e){
	e.preventDefault();
	$(this).parentsUntil('.nav', 'li').find('a').css('color', 'red')
})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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