在一个列表中,每一项都有多个数据,像这样
<ul class="datalist">
<li class="item">
<span class="item-id">1</span>
<span class="item-name">AA</span>
<span class="item-count">90</span>
</li>
<li class="item">
<span class="item-id">2</span>
<span class="item-name">BB</span>
<span class="item-count">52</span>
</li>
<li class="item">
<span class="item-id">3</span>
<span class="item-name">CC</span>
<span class="item-count">57</span>
</li>
<li class="item">
<span class="item-id">4</span>
<span class="item-name">DD</span>
<span class="item-count">36</span>
</li>
</ul>
要想按照.item-count中包含的数据对 li 进行升序、降序排序,可以使用**Array.prototype.sort()**来对列表进行排序:
var $domlist = $('.datalist');//将要排序的列表
var sortDom = function(flag,$domlist){
var $item = $domlist.find('.item');
var $newList = Array.prototype.sort.call($item,function(a,b){
return flag ? ($(a).find('.item-count').html()-0) - ($(b).find('.item-count').html()-0) : ($(b).find('.item-count').html()-0) - ($(a).find('.item-count').html()-0)
});
return $newList; //返回重新排序过的列表
}
var $result = sortDom(true,$domlist);//true为升序、false为降序
$('.datalist').html($result);