【问题标题】:How to sort divs according to their id using jQuery?如何使用 jQuery 根据 id 对 div 进行排序?
【发布时间】:2011-01-22 00:55:46
【问题描述】:

我有一组带有随机 id 的 div:

<div id="container">
   <div id="2"></div>
   <div id="9"></div>
   <div id="7"></div>
   <div id="1"></div>
   <div id="4"></div>
</div>

有没有一种快速的方法可以使用 jQuery 根据它们的 id 值对它们进行排序? 谢谢。

【问题讨论】:

    标签: jquery html sorting


    【解决方案1】:

    我会使用 tinysort 插件:

    http://tinysort.sjeiti.com/

    在你的情况下,它会是这样的:

    $("#container &gt; div").tsort("",{attr:"id"});

    【讨论】:

    • 这个。我不得不忍气吞声,承认我无法弄清楚如何让sort() 工作,无论我传递给它什么功能。我集成了 TinySort,我的生活从未如此轻松。
    • 对于那些通过谷歌找到这个的人,我相信上面的例子可能已经过时了。这个插件对我有用:tinysort('#container &gt; div',{attr: 'id'})
    【解决方案2】:

    有插件等对元素进行排序。如果您计划实际重新排序 DOM 元素,您可能应该使用其中之一。

    如果您只想要一个已排序的 div 列表,您可以使用 Javascript - 因为可以使用自定义比较函数对数组进行排序。您可以使用toArray() 将选定的&lt;div&gt;s 集合转换为数组,然后使用此机制对其进行排序。

    $('#container > div').toArray().sort( function(a,b) { a.id - b.id } );
    

    您还可以使用detach()appendTo() 方法按排序顺序删除和重新插入元素。但是,这可能不是对 DOM 元素重新排序的最有效方式。

    【讨论】:

    • 这是正确的答案,比依赖插件更重要。
    【解决方案3】:

    试试我的 jquery 插件$.toArrayouter,使用 Underscore 库。

    $('#container').html(_.sortBy($('#container>div').toArrayouter(),function (name) {return name} ).join(''))
    

    演示:http://jsfiddle.net/abdennour/fDZjR/1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2018-02-06
      • 1970-01-01
      相关资源
      最近更新 更多