jQuery.sort对DOM元素进行排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery.sort对DOM元素进行排序相关的知识,希望对你有一定的参考价值。

实例:

技术分享

每个tr的第三列显示的都是数字,我们就以这数字列作为排序依据,方法就是利用jquery的sort()方法。
首先,利用jquery选择器获取每个tr元素,获取回来是一个数据:
var $trs = $(‘#dataTable_table tbody tr‘);
然后通过调用jquery的sort()方法进行排序,sort()方法接收的参数是一个方法,该方法就是实现排序的逻辑:
$trs.sort(function(a,b){
    var valveNumOfa = $(a).find(‘td:eq(2)‘).text();
    var valveNumOfb = $(b).find(‘td:eq(2)‘).text();
    if(parseInt(valveNumOfa) < parseInt(valveNumOfb)) return -1;
    else return 1;
});
这样就实现了dom元素的排序。

这里实现的是升序排序,如果需要降序排序,if-else这样写:
if(parseInt(valveNumOfa) < parseInt(valveNumOfb)) return 1;
    else return -1;

至此,dom元素已经排好序了,最后一步就是把这好序的dom节点重新拼回table里:
$trs.detach().appendTo(‘#dataTable_table tbody‘);
OK,大功告成,这样就实现了在前端对dom元素进行排序,而不用再次请求后台,在后台重新查数据进行排序,然后再在前台显示,大大减轻了服务器的负担。
效果图如下(忽略界面是否好看,重在看结果):
未排序前:

技术分享
升序排序后: 
技术分享
降序排序后: 
技术分享

 
 




以上是关于jQuery.sort对DOM元素进行排序的主要内容,如果未能解决你的问题,请参考以下文章

根据 DOM 元素在 DOM 中的位置对包含 DOM 元素的数组进行排序

按列表中的顺序对 html DOM 元素进行排序

jQuery的DOM操作

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

如何在 RecyclerView 中对字符串元素进行排序?

通过DOM元素数据集将回调传递给js