NodeList.prototype.forEach = HTMLCollection.prototype.forEach = Array.prototype.forEach; NodeList.prototype.map = HTMLCollection.prototype.map = Array.prototype.map; NodeList.prototype.filter = HTMLCollection.prototype.filter = Array.prototype.filter; NodeList.prototype.reduce = HTMLCollection.prototype.reduce = Array.prototype.reduce; NodeList.prototype.every = HTMLCollection.prototype.every = Array.prototype.every; NodeList.prototype.some = HTMLCollection.prototype.some = Array.prototype.some; var By = { id: function (id) { return document.getElementById(id) }, tag: function (tag, context) { return (context || document).getElementsByTagName(tag) }, "class": function (klass, context) { return (context || document).getElementsByClassName(klass) }, name: function (name) { return document.getElementsByName(name) }, qsa: function (query, context) { return (context || document).querySelectorAll(query) }, qs: function (query, context) { return (context || document).querySelector(query) } }