jquery在输出之前对行进行排序?

时间:2013-06-24 14:15:24

标签: jquery sorting html-table multiple-columns rows

我有一个带有树层次结构的表。当您单击它们时,某些行会打开更多行,这些都是使用jquery完成的。但是,我想要排序在输出之前打开的行。有一个简单的方法来做到这一点。我对jquery不太好。 。

我有类似的东西

$( "##table" ).find( "tr.entry[con=" + condition1 + "]" ).each( function(evt) {

                                  . . . . .

} );

它获取我想要为所单击的行输出的行,然后隐藏或显示它们。但是,我想首先根据列值对它们进行排序,然后输出它们。是否有.sort()类型的功能可以为我做这个工作?如果没有,我将如何去做呢?

1 个答案:

答案 0 :(得分:0)

jQuery(selector)返回的结果是一个数组。您可以使用.sort方法对它们进行排序。

然后,您可以使用jQuery的操纵器(.detach.append.insertAfter ...)删除并重新插入元素。

示例(fiddle):

var $rows = $('#tbl tbody').find('tr').sort(function (a, b) {
    var va = parseInt($(a).find('td').text(), 10);
    var vb = parseInt($(b).find('td').text(), 10);
    return vb - va;
});

$rows.detach();
$('#tbl tbody').append($rows);