我必须对某些数据属性进行排序。像这样:
<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));
});
}
但是,我无法使用此代码对数据名进行排序,因为我认为这是一个字符串变量。那么你知道如何使代码有效吗?
由于
答案 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));
});
未检验过代码。我认为这应该有效。小心使用小写和大写