自定义li值排序

时间:2015-09-16 09:16:16

标签: javascript jquery

我找到了以下脚本来启动自定义排序,但它适用于" category-class"而不是李的价值。

我修改这个脚本是不成功的,也许有人可以帮助我?

剧本:

<ul id="input">
<li category="download">download</li>
<li category="video">video</li>
<li category="product">product</li>
<li category="any">any</li>
</ul>


(function($) {

$.fn.reOrder = function(array) {
  return this.each(function() {

    if (array) {    
      for(var i=0; i < array.length; i++) 
        array[i] = $('li[category="' + array[i] + '"]');

      $(this).empty();  

      for(var i=0; i < array.length; i++)
        $(this).append(array[i]);      
    }
  });    
}
})(jQuery);

var category_sort_order = ['any', 'product', 'download', 'video'];
$('#input').reOrder(category_sort_order);

我需要什么(没有类别,只是li值):

<ul id="input">
<li>download</li>
<li>video</li>
<li>product</li>
<li>any</li>
</ul>


注意: 对我来说很重要的是我可以指出排序值(没有字母排序)。


1 个答案:

答案 0 :(得分:0)

你提到的html

<ul id="input">
<li>download</li>
<li>video</li>
<li>product</li>
<li>any</li>
</ul>

你可以简单地更新你的脚本,根据它的html选择li而不是如下所示的类别

(function($) {

$.fn.reOrder = function(array) {
  return this.each(function() {

    if (array) {    
      for(var i=0; i < array.length; i++) 
        array[i] = $('li:contains('+array[i]+')');

      $(this).empty();  

      for(var i=0; i < array.length; i++)
        $(this).append(array[i]);      
    }
  });    
}
})(jQuery);

var category_sort_order = ['any','product', 'download', 'video'];
$('#input').reOrder(category_sort_order);

将起作用