Geralmente gosto de iterar em uma coleção jQuery da mesma maneira que itero em uma matriz normal com o método shift () nativo, mas você não pode chamar shift () em uma coleção jQuery. Você teria que empurrar () cada elemento em um novo array, o que é uma droga.
Felizmente, você pode implementar facilmente seu próprio equivalente em shift ():
$.fn.shift = function () {
var x = this.eq(0);
this.splice(0,1);
return x;
}
Portanto, se você quiser esmaecer os elementos de um objeto jQuery, um de cada vez, poderá usar shift () para manipular o objeto original:
var obj = $('.items');
(function walk(o) {
$(o).fadeOut(500, function () {
if (obj.length) {
walk(obj.shift()); //<<< here's our baby!
}
});
}(obj.shift()));