Встречаются задачи, когда было бы удобно осуществлять перебор коллекции jQuery в обратном порядке. Ниже привожу функцию которая дает такую возможность:
jQuery.fn.reverseEach = (function () {
var list = jQuery([1]);
return function (c) {
var el, i=this.length;
try {
while (i-->0 && (el=list[0]=this[i]) && c.call(list,i,el)!==false);
}
catch(e) {
delete list[0];
throw e;
}
delete list[0];
return this;
};
}());
$("li.classname").reverseEach(function(){
// this сразу содержит объект jQuery
console.log( 'id:', this.attr('id') );
//return false; - Если в каком-то случае вернем false - обход прервется в этом месте
});
Если нужно поведение аналогичное .each(), когда к элементу обращаемся через $(this),
нужно заменить 13 строчку на:
return this.get(0); // Вместо: return this;