Yep, I know that

Zapomniałem o tym temacie bo problem już rozwiązałem.
Pobieranie node z DOM jest dość częstym zabiegiem, a co za tym idzie iteracja po takim czymś powinna być jakoś uproszczona.
Dla tablic mamy array.ForEach(function(el){ ... }); Tutaj to nie zadziała bo jak wspomniałem otrzymujemy [object NodeList] a nie [array].
Oczywiście gdybym poszukał wcześnie w Google zamiast zakładać temat znalazłbym takie rozwiązanie:
function $_array(nodeList
){ return Array.prototype
.slice
.call
(nodeList
); } //to jest klucz "konwertuje" [object NodeList] na [array]
var menu = $_array(document.querySelectorAll("..."));
menu.forEach(function(elm){
...
...
});
Potem zastanowiła mnie optymalność takiego rozwiązania. Wujek google znowu mi pomógł i znalazłem:
http://jsperf.com/array-foreach-vs-for-loopZ tego jasno wynika, for() jest najlepszy technicznie. A forEach wygodny (zależy dla kogo).