пожалуйста подскажите, есть вот такие блоки:
<div class='block'>
<button class='button'>Кнопка</button>
<div class='info'></div>
</div>
<div class='block'>
<button class='button'>Кнопка</button>
<div class='info'></div>
</div>
<div class='block'>
<button class='button'>Кнопка</button>
<div class='info'></div>
</div>
и есть вот такой код JS
const button = document.getElementById('button');
const info = document.getElementById('info');
button.onclick = function(){
info.classList.toggle('active');
}
Сейчас работает с помощью id . при клике на кнопку добавляется класс active и блок info показывается.
Как сделать чтобы работало без id? Чтобы по клику на кнопку ,к ближайшему к нему блоку info добавлялся класс active через toggle, а остальные блоки при этом не реагировали.
Понимаю что это как то работает this, но как не понимаю
на чистом js хочу понять как это работает
Выбирай:
this.classList.toggle('active');
event.target.classList.toggle('active');
event.currentTarget.classList.toggle('active');
Хм.. Перечитал вопрос - там не на кнопку надо, а на блок, так что так:
event.target.closest('.block').querySelector('.info').classList.toggle('active')
Только полифилл для closest
надо подключить (в зависимости от браузеров).
Виртуальный выделенный сервер (VDS) становится отличным выбором
Какая из этих процедур менее ресурсозатратна?
Как на JavaScript подписать пользователя на уведомления FCM и получить Push-token для сохранения в БД?
Есть через ухо написанный сайт, намешанно в нем дофигаВ итоге при установке google analytics нифига не работает
Столкнулся с проблемой при сохранении текстового файла на гугл диск Есть кнопка