복붙노트

[JQUERY] JQuery와 .each () 뒤로

JQUERY

JQuery와 .each () 뒤로

해결법


  1. 1.

    $($("li").get().reverse()).each(function() { /* ... */ });
    

  2. 2.나는 세계에서 가장 작은 jQuery 플러그인의 형태로, 지금까지 가장 깨끗한 방법으로 당신을 제공 :

    나는 세계에서 가장 작은 jQuery 플러그인의 형태로, 지금까지 가장 깨끗한 방법으로 당신을 제공 :

    jQuery.fn.reverse = [].reverse;
    

    용법:

    $('jquery-selectors-go-here').reverse().each(function () {
        //business as usual goes here
    });
    

    여기에 자신의 게시물에 마이클 기어 리에게 신용을 -all : http://www.mail-archive.com/discuss@jquery.com/msg04261.html


  3. 3.넌 할 수있어

    넌 할 수있어

    jQuery.fn.reverse = function() {
        return this.pushStack(this.get().reverse(), arguments);
    }; 
    

    다음에

    $(selector).reverse().each(...) 
    

  4. 4.다음은이에 대해 다른 옵션은 다음과 같습니다

    다음은이에 대해 다른 옵션은 다음과 같습니다

    첫째 : jQuery를하지 않고 :

    var lis = document.querySelectorAll('ul > li');
    var contents = [].map.call(lis, function (li) {
        return li.innerHTML;
    }).reverse().forEach(function (content, i) {
        lis[i].innerHTML = content;
    });
    

    ... 그리고 jQuery로 :

    당신은이를 사용할 수 있습니다 :

    $($("ul > li").get().reverse()).each(function (i) {
        $(this).text( 'Item ' + (++i));
    });
    

    여기 데모

    역순으로도 jQuery를 사용하는 또 다른 방법 :

    $.fn.reverse = [].reverse;
    $("ul > li").reverse().each(function (i) {
        $(this).text( 'Item ' + (++i));
    });
    

    이 여기에 데모.

    또 하나 개의 대안은 길이 (즉 셀렉터 매칭 요소의 수)를 사용하고 각 반복의 인덱스를 사용하여이 내려 가고있다. 그럼 당신은이를 사용할 수 있습니다 :

    var $li = $("ul > li");
    $li.each(function (i) {
        $(this).text( 'Item ' + ($li.length - i));
    });
    

    이 여기 데모

    종류의 위와 관련된 한 가지 더 :

    var $li = $("ul > li");
    $li.text(function (i) {
        return 'Item ' + ($li.length - i);
    });
    

    여기 데모


  5. 5.나는 예를 들어, 플러그인 역을 만드는 선호

    나는 예를 들어, 플러그인 역을 만드는 선호

    jQuery.fn.reverse = function(fn) {       
       var i = this.length;
    
       while(i--) {
           fn.call(this[i], i, this[i])
       }
    };
    

    사용 예 :

    $('#product-panel > div').reverse(function(i, e) {
        alert(i);
        alert(e);
    });
    

  6. 6.당신이 jQuery.fn에 방법을 저장하지 않을 경우 사용할 수 있습니다

    당신이 jQuery.fn에 방법을 저장하지 않을 경우 사용할 수 있습니다

    [].reverse.call($('li'));
    

  7. 7.내가 인 Vinay 아이디어를 사용하므로 $ .each에 역을 할 필요가 :

    내가 인 Vinay 아이디어를 사용하므로 $ .each에 역을 할 필요가 :

    //jQuery.each(collection, callback) =>
    $.each($(collection).get().reverse(), callback func() {});
    

    멋지게 덕분에 일


  8. 8.당신은 jQuery로 반복 처리 뒤쪽으로 각 기능 할 수 없습니다,하지만 당신은 활용의 jQuery 구문 여전히 수 있습니다.

    당신은 jQuery로 반복 처리 뒤쪽으로 각 기능 할 수 없습니다,하지만 당신은 활용의 jQuery 구문 여전히 수 있습니다.

    다음을 시도해보십시오

    //get an array of the matching DOM elements   
    var liItems = $("ul#myUL li").get();
    
    //iterate through this array in reverse order    
    for(var i = liItems.length - 1; i >= 0; --i)
    {
      //do Something
    }
    

  9. 9.내가 대안으로 사용할 새 jQuery를 기능을했다, 그래서 나는, 개체 Array.prototype.reverse에 실패 발견 jQuery.eachBack를 (). 그것은 (정상으로 jQuery.each을 반복하는) 것이다 배열로 저장 각 키. 그러므로 그 배열 수행 역방향 키의 순서대로 원본 배열 / 개체 콜백 반전.

    내가 대안으로 사용할 새 jQuery를 기능을했다, 그래서 나는, 개체 Array.prototype.reverse에 실패 발견 jQuery.eachBack를 (). 그것은 (정상으로 jQuery.each을 반복하는) 것이다 배열로 저장 각 키. 그러므로 그 배열 수행 역방향 키의 순서대로 원본 배열 / 개체 콜백 반전.

    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);
    }
    

  10. 10.나는 유 필요가 있다고 생각

    나는 유 필요가 있다고 생각

    .parentsUntill()
    

  11. 11.당신은 또한 시도 할 수 있습니다

    당신은 또한 시도 할 수 있습니다

    var arr = [].reverse.call($('li'))
    arr.each(function(){ ... })
    
  12. from https://stackoverflow.com/questions/1394020/jquery-each-backwards by cc-by-sa and MIT license