jquery排序字符串数据

时间:2016-08-30 09:56:31

标签: jquery string sorting custom-data-attribute

我必须对某些数据属性进行排序。像这样:

<div class="container">
   <div class="content" data-price="50" data-name="DEF">
   </div>
   <div class="content" data-price="10" data-name="ABC">
   </div>
</div>

我使用此代码进行排序价格,并且它的效果非常好:

function sort_by_price(){
    $('.container').each(function(){ //I have more than 1 container
        $(this).find('.content').sort(function(a, b){
          return +a.dataset.price - +b.dataset.price;
        }).appendTo($(this));
    });
}

但是,我无法使用此代码对数据名进行排序,因为我认为这是一个字符串变量。那么你知道如何使代码有效吗?

由于

1 个答案:

答案 0 :(得分:0)

function f (a,b){
    // Getting the lowercase strings to avoid problems with lowercase and uppercase
    a= a.dataset.name.toLowerCase();
    b= b.dataset.name.toLowerCase();

    if(a>b)
        return 1; 
    else
       return a===b?0:-1;
}

function sort_by_name(){
$('.container').each(function(){ //I have more than 1 container
    $(this).find('.content').sort(f).appendTo($(this));
});

未检验过代码。我认为这应该有效。小心使用小写和大写