Skip to content

Instantly share code, notes, and snippets.

@bendc
Created January 13, 2015 14:39
Show Gist options
  • Star 73 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save bendc/4090e383865d81b4b684 to your computer and use it in GitHub Desktop.
Save bendc/4090e383865d81b4b684 to your computer and use it in GitHub Desktop.
ES6: Iterating over a NodeList
var elements = document.querySelectorAll("div"),
callback = (el) => { console.log(el); };
// Spread operator
[...elements].forEach(callback);
// Array.from()
Array.from(elements).forEach(callback);
// for...of statement
for (var div of elements) callback(div);
@bendc
Copy link
Author

bendc commented Jan 13, 2015

Unsurprisingly, for...of is approximately twice as fast as the two other approaches.

@kellengreen
Copy link

Unfortunately Chrome (46 at the time of this writing) doesn't support for...of iteration on NodeLists.

@martinmcwhorter
Copy link

In chrome 51 you can just do elements.forEach(callback)

@varkadov
Copy link

varkadov commented Aug 1, 2016

Array.from(elements, callback)

@treeskar
Copy link

treeskar commented Sep 1, 2016

You also can add custom iterator

elements[Symbol.iterator]();
elements.forEach(callback)

@mzalazar
Copy link

mzalazar commented Jan 3, 2019

[].forEach.call(elements, callback)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment