按数据属性排序div包括页面范围

时间:2014-02-04 05:14:05

标签: javascript jquery sorting custom-data-attribute

我有一个包含页码的数据结果集

<div class="results">
   <div class="result" data-pages="1005-1007">
      pp 1005-1007
   </div>
   <div class="result" data-pages="997">
      pp 997
   </div>
   <div class="result" data-pages="1009-1012">
      pp 1009-1012
   </div>
   <div class="result" data-pages="1037-1038">
     pp 1037-1038
  </div>

如果它们是整数,那么简单的排序就会重新排序:

$('.result').sort(function(a,b){
   return $(a).data('pages') >$(b).data('pages');
}).appendTo('.results')

但是范围甩掉了结果,不出所料,上面的功能是无益的:

pp 1005-1007
pp 997
pp 1009-1012
pp 1037-1038

如何使用javascript / jquery将这些结果重新排序为可以提供给我的内容:

pp 997
pp 1005-1007
pp 1009-1012
pp 1037-1038

http://jsfiddle.net/craigjb12/CFYnE/63/

1 个答案:

答案 0 :(得分:2)

您可以从sort功能

返回-1或1
$('.result').sort(function (a, b) {
    return $(a).data('pages') > $(b).data('pages') ? -1 : 1;
}).appendTo('.results')

演示:Fiddle