How to Use querySelectorAll() for Multiple Classes in the DOM


How can we use querySelectorAll() to target multiple elements in the DOM?

Suppose we want to obtain instances of div and p tags.

CSS selectors

CSS supports what we call selector groups, which allows us to specify multiple selectors.

We might have seen this when applying the same CSS property to multiple elements in the DOM.

h1 { font-family: sans-serif }
h2 { font-family: sans-serif }
h3 { font-family: sans-serif }
/* Is equivalent to */
h1, h2, h3 { font-family: sans-serif }

This is also supported in querySelectorAll() because this function accepts all CSS selectors.

Any element we can target in CSS can be targeted in querySelectorAll().

querySelectorAll() with multiple elements

Per the example above, we can target div and p tags by targeting them how we would in a stylesheet.

const list = document.querySelectorAll("div, p");

As such, we can also target specific classes. For instance, we can target all div elements that have the class dog.

const list = document.querySelectorAll("div.dog");

We can also target all div elements containing a child element with class dog.

const list = document.querySelectorAll("div .dog");