Как правильно создавать группу кнопок открывающих модальное окно на JS?

У меня есть несколько кнопок, которые, по идее, открывают одно и тоже модальное окно, но этот код этого делать не хочет. Только если в конец строки переменной "more" добавить "[num]", то сработает кнопка под номером "num".

Я в JS совсем новичок, я уверен, что решение моей проблемы максимально лёгкое, но я надеюсь на ваше понимание и помощь))

let more = document.querySelectorAll('.more'),
    overlay = document.querySelector('.overlay'),
    close = document.querySelector('.popup-close');

  more.addEventListener('click', function () {
    overlay.style.display = 'block';
    this.classList.add('more-splash');
    document.body.style.overflow = 'hidden';
  });

  close.addEventListener('click', function () {
    overlay.style.display = 'none';
    more.classList.remove('more-splash');
    document.body.style.overflow = '';
  });


Ответы (1 шт):

Автор решения: Leonid

querySelectorAll возвращает коллекцию (подобную массиву), а не отдельный элемент

let more = document.querySelectorAll('.more'),
    overlay = document.querySelector('.overlay'),
    close = document.querySelector('.popup-close');

more.forEach(function(but){
    but.addEventListener('click', function () {
        overlay.style.display = 'block';
        this.classList.add('more-splash');
        document.body.style.overflow = 'hidden';
    })
});
→ Ссылка