0

我已经查看了许多 jQuery 的排序解决方案,但还没有找到我想要的。

我正在尝试对包含需要排序的行和列的表进行排序:http: //jsfiddle.net/rvezE/

<table>
<tr>
    <td>3</td>
    <td>5</td>
    <td>7</td>
</tr>
<tr>
    <td>1</td>
    <td>2</td>
    <td>4</td>
</tr>
<tr>
    <td>3</td>
    <td>8</td>
    <td>9</td>
</tr>
</table>

我需要从左到右,从上到下对表格进行排序。但是到目前为止我发现的所有插件都只能按行排序。

我已经尝试了一些简单的解决方案,将所有 TD 取出、排序并重新添加它们,但是对于大量(大约 100 个)来说,性能很糟糕,它对于平板电脑也需要非常敏捷。

有人遇到过这样的事情吗?

4

1 回答 1

2

尝试这个:

/*remove rows from DOM, loop over each row within jQuery object to sort cells*/
var $rows=$('tr').detach().each(function(){
    /* sort cells of this row*/
    var cells=$(this).find('td').sort(function(a,b){
        return $(a).text() >  $(b).text();
    }); 
    /* update sorted html of this row*/
    $(this).html( cells)

})
/* now sort the rows*/
.sort(function(a,b){
     return $(a).find('td').first().text() >  $(b).find('td').first().text();

});
/* update table with sorted rows html*/
$('table').html($rows);

DEMO

假设您只想按第一列排序

于 2013-05-05T10:26:18.360 回答