簡體   English   中英

通過數據屬性的數值對元素進行排序,而無需使用jQuery

[英]Sort element by numerical value of data attribute WITHOUT Jquery

我將如何將這段代碼轉換為常規javascript?

    function sortList(listName,dataName){
    var $people = $(listName);

    $peopleli = $people.children('.leader-mobile');
    $peopleli.sort(function(a,b){
        console.log(b);
        var an = a.getAttribute(dataName),
        bn = b.getAttribute(dataName);
        if(an < bn) {
            return 1;
        }
        if(an > bn) {
            return -1;
        }
        return 0;
    });
    $peopleli.detach().appendTo($people);
}

它像

 sortList($('#myList'),'data-close');

我試圖基於數據屬性對列表進行排序,而我不能使用jQuery。

我受jqMobi框架限制使用jquery,jqMobi框架僅具有最小的jquery兼容性。

我發現在找到使jqMobi和Jquery一起玩的方法之前。 我想到了Id首先學習如何在純JavaScript中實際進行操作

我最終以這種方式解決了問題……首先只是對對象進行排序,然后將排序后的對象應用於DOM,而不是從DOM中獲取元素並在放置后對其進行排序。 更快更好地工作

   var sort_by = function(field, reverse, primer){
       var key = primer ? 
           function(x) {return primer(x[field])} : 
           function(x) {return x[field]};

       reverse = [-1, 1][+!!reverse];

       return function (a, b) {
           return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
         } 
    }

    salesSort.sort(sort_by('sales',false,parseInt));
    unitSort.sort(sort_by('units',false,parseInt));
    closeSort.sort(sort_by('close',false,parseInt));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM