JQuery .each() backwards

前端 未结 11 1201
萌比男神i
萌比男神i 2020-11-22 13:44

I\'m using JQuery to select some elements on a page and then move them around in the DOM. The problem I\'m having is I need to select all the elements in the reverse order t

11条回答
  •  庸人自扰
    2020-11-22 14:17

    I found Array.prototype.reverse unsuccessful with objects, so I made a new jQuery function to use as an alternative: jQuery.eachBack(). It iterates through as the normal jQuery.each() would, and stores each key into an array. It then reverses that array and performs the callback on the original array/object in the order of the reversed keys.

    jQuery.eachBack=function (obj, callback) {
        var revKeys=[]; $.each(obj,function(rind,rval){revKeys.push(rind);}); 
        revKeys.reverse();
        $.each(revKeys,function (kind,i){
            if(callback.call(obj[i], i, obj[i]) === false) {    return false;}
        });
        return obj;
    }   
    jQuery.fn.eachBack=function (callback,args) {
        return jQuery.eachBack(this, callback, args);
    }
    

提交回复
热议问题