Hacker News new | ask | show | jobs
by nathggns 3667 days ago
document.querySelectorAll(..).forEach?!?!?!?!
2 comments

In Firefox, Safari, IE, and Chrome < 51:

    TypeError: document.querySelectorAll(...).forEach is not a function
That's exactly what this sub-thread is about! NodeList doesn't have .forEach.
Yep, that just rolls of the tongue...
Alias `document.querySelectorAll` to `$$`?
var $ = selector => [].slice.call(document.querySelectorAll(selector));

Fo' sizzle

If you're using ES6 you may as well use spread and defaults to make it more useful:

const $ = (selector, context=document) => [...context.querySelectorAll(selector)]

Or just polyfill it with NodeList.prototype.forEach = Array.prototype.forEach and get nice readable code.

Point is: we shouldn't have to.

Vanilla JS also allowed you to look inside HTML5 FormData a few months earlier. And no, it isn't FormData.toString().