Jquery plugins 是否有用于列表排序的jQuery插件?

Jquery plugins 是否有用于列表排序的jQuery插件?,jquery-plugins,Jquery Plugins,是否有一个jQuery插件允许根据作为隐藏元素存储的元数据对项目列表(..)进行排序?例如,每个列表项都有两个隐藏输入:author和year。我想使用这些隐藏元素对列表进行排序。我想知道jQuery是否有现成的插件。到目前为止,我还没有找到这样的插件。我唯一找到的是表格排序 <ul> <li>Position 1 <input type="hidden" name="author" value="Peter"/> <input ty

是否有一个jQuery插件允许根据作为隐藏元素存储的元数据对项目列表(
  • ..
  • )进行排序?例如,每个列表项都有两个隐藏输入:
    author
    year
    。我想使用这些隐藏元素对列表进行排序。我想知道jQuery是否有现成的插件。到目前为止,我还没有找到这样的插件。我唯一找到的是表格排序

    <ul>
      <li>Position 1
        <input type="hidden" name="author" value="Peter"/>
        <input type="hidden" name="year" value="2004"/>
      </li>
      <li>Position 2
        <input type="hidden" name="author" value="John"/>
        <input type="hidden" name="year" value="2005"/>
      </li>
      <li>Position 3
        <input type="hidden" name="author" value="Tony"/>
        <input type="hidden" name="year" value="2006"/>
      </li>
    </ul>
    
    • 位置1
    • 位置2
    • 位置3
    给你:

    <ul>
      <li>Position 1
        <input type="hidden" name="author" value="Peter"/>
        <input type="hidden" name="year" value="2004"/>
      </li>
      <li>Position 2
        <input type="hidden" name="author" value="John"/>
        <input type="hidden" name="year" value="2005"/>
      </li>
      <li>Position 3
        <input type="hidden" name="author" value="Tony"/>
        <input type="hidden" name="year" value="2006"/>
      </li>
    </ul>
    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    
    <script type="text/javascript">
        jQuery.fn.sort = function() {  
            return this.pushStack( [].sort.apply( this, arguments ), []);  
        };  
    
        function mySorter(a,b){  
             return $(a).find("[name=author]").val() > $(b).find("[name=author]").val() ? 1 : -1;  
        };  
    
        $(document).ready(function(){
             $('ul li').sort(mySorter).appendTo('ul');
        })
    
    </script>
    
    • 位置1
    • 位置2
    • 位置3
    jQuery.fn.sort=函数(){ 返回这个.pushStack([].sort.apply(这个,参数),[]); }; 函数mySorter(a,b){ 返回$(a).find(“[name=author]”).val()>$(b).find(“[name=author]”).val()”?1:-1; }; $(文档).ready(函数(){ $('ul li').sort(mySorter).appendTo('ul'); })
    我改编自:


    编辑:修复了val()和“ul”的错误。

    请注意,“ul”代表“无序列表”:DHah,这是真的。但是,从项目编号的角度来看,此列表未排序;-)@兰斯~干得好,我无意中碰到了这件事,它的效果和预期的一样好!