class="items">
<li></li>
<li>
<ul class="items">
<li></li>
<li></li>
<li></li>
</ul>
</li>
<li></li>
</ul>
</li>
<li>
<ul class="items">
<li></li>
<li></li>
<li></li>
</ul>
</li>
<li></li>
</ul>
К примеру я на последнем уровне нажимаю на li и мне нужно чтобы на родители ul с классом items добавлялся класс active, как такое сделать?
insertAdjacentHTML привязать на событие мыши
А можно подробнее
Можно поподробнее вопрос?
Получается этим методом смогу сразу получить всех родителей с этим классом и дать новый?
Нет, это метод для добавления элемента. Вопрос в том чтобы получить всех родителей элемента? (одного)
Вопрос в том, как получить родителей этого элемента с классом, а после всем им дать класс
Это два вопроса: 1) Всех родителей элемента можно получить через свойство parentNode. Всех = 1 2) Дать класс можно через метод classList.add() элемента.
Получается Html <ul> <li> <ul class="item" > <li> <ul class="item" > <li> <a> Js let a = document.querySelector("a"); a.onclick(function(){ this.parentNode(".item").classList.add("red"); })
parentNode - это свойство, а не метод. Если ты хочешь найти ближайший родитель по селектору, используй метод closest() вместо него. Будет работать именно так, как ты хочешь.
То есть оба "item" получат класс?
Нет, первый встреченный. Если хочешь чтобы все, нужно делать рекурсивную функцию или цикл.
Делегирование событий. Тебе это нужно. Один слушатель вешаешь на родитель и отлавливаешь событие где надо, even.target
Обсуждают сегодня