This code transparently makes nodelists act like arrays!
With it, you can do this:
document.getElementsByTagName('a').forEach(function(a){
a.style.color = '#F00'
})
(function(a,b,c,d){ //start of self-calling function | |
for(b in a=Object.getOwnPropertyNames(c=Array.prototype)) //for every array method | |
NodeList.prototype[a[b]]=c[a[b]] //add it to nodelists | |
})() //end of self-calling function |
(function(a,b,c,d){for(b in a=Object.getOwnPropertyNames(c=Array.prototype))NodeList.prototype[a[b]]=c[a[b]]})() |
{ | |
"name": "listToArray", | |
"description": "Makes nodelists act like arrays", | |
"keywords": [ | |
"nodelist", | |
"array", | |
"prototype", | |
"foreach" | |
] | |
} |
<!DOCTYPE html> | |
<title>Foo</title> | |
<a>lolol</a> | |
<a>efesgdsge</a> | |
<a>rdgsdrhrsd</a> | |
<a>rgdsgdsg</a> | |
<a>eswred</a> | |
<a>dfsdghtyj</a> | |
<a>srhdhthtj</a> | |
<script> | |
(function(a,b,c,d){for(b in a=Object.getOwnPropertyNames(c=Array.prototype))NodeList.prototype[a[b]]=c[a[b]]})() | |
document.getElementsByTagName('a').forEach(function(a){ | |
a.style.color = '#F00' | |
}) | |
</script> |