How to add a click event to a list of DOM elements returned from querySelectorAll

How to iterate a NodeList and attach an event listener to each element

You can add an event listener to all the elements returned by a document.querySelectorAll() call by iterating over those results using the for..of loop:

const buttons = document.querySelectorAll("#select .button")
for (const button of buttons) {
  button.addEventListener('click', function(event) {
    //...
  })
}

It’s important to note that document.querySelectorAll() does not return an array, but a NodeList object.

You can iterate it with forEach or for..of, or you can transform it to an array with Array.from() if you want.

Download my free JavaScript Beginner's Handbook and check out my JavaScript Masterclass!

👀 Looking for a job? look at DEVJOBS (BETA) 🔥