17

Is there cleaner way to iterate over a set of jqlite elements than the following?

var els = angular.element(document.getElementById("main").children); // just as an example
for(var i=0, el; el=els[i]; i++) {
  // do something
}

I mean, there is nothing wrong with this, I am just surprise that there is no each() or forEach(). And I could not find anything about that on the internet.

standup75
  • 4,734
  • 6
  • 28
  • 49

2 Answers2

31

There is forEach()

angular.forEach(els, function(element){

});
zs2020
  • 53,766
  • 29
  • 154
  • 219
3

You can use Array.prototype.slice.call(jqResult) to convert it to a normal Array, that has supports forEach, map and filter operations.

See also this reference from MDN.

mik01aj
  • 11,928
  • 15
  • 76
  • 119