JS использовать toggle при клике на кнопку без id

153
14 октября 2019, 13:00

пожалуйста подскажите, есть вот такие блоки:

<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 хочу понять как это работает

Answer 1

Выбирай:

  • this.classList.toggle('active');
    
  • event.target.classList.toggle('active');
    
  • event.currentTarget.classList.toggle('active');
    

Хм.. Перечитал вопрос - там не на кнопку надо, а на блок, так что так:

event.target.closest('.block').querySelector('.info').classList.toggle('active')

Только полифилл для closest надо подключить (в зависимости от браузеров).

READ ALSO
Какой из селекторов будет оптимальнее, в плане производительности?

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

Какая из этих процедур менее ресурсозатратна?

130
FCM. Подписать и сохранить токен

FCM. Подписать и сохранить токен

Как на JavaScript подписать пользователя на уведомления FCM и получить Push-token для сохранения в БД?

102
как найти что меняет линки

как найти что меняет линки

Есть через ухо написанный сайт, намешанно в нем дофигаВ итоге при установке google analytics нифига не работает

288
Сохранение blob на Google Drive

Сохранение blob на Google Drive

Столкнулся с проблемой при сохранении текстового файла на гугл диск Есть кнопка

209