# How to loop over DOM elements from querySelectorAll

> Learn how to loop over the elements returned by querySelectorAll, which gives you a NodeList rather than an array, using a clean JavaScript for..of loop.

Author: Flavio Copes | Published: 2018-10-19 | Canonical: https://flaviocopes.com/loop-dom-elements/

The `querySelectorAll()` method run on `document` returns a list of DOM elements that satisfy the selectors query.

It returns a list of elements, which is not an array but a [`NodeList`](https://developer.mozilla.org/en-US/docs/Web/API/NodeList) object.

The easiest way to loop over the results is to use the `for..of` loop:

```js
for (const item of document.querySelectorAll('.buttons')) {
  //...do something
}
```
