简体   繁体   English

jquery表排序一次

[英]jquery table sort once

How can I order a table like this:我如何订购这样的桌子:

Group pos
b     2
c     1
b     1
a     1

to this:对此:

Group pos
a     1
b     1
b     2
c     1

with jquery?用jquery?

The table should not be sortable .该表应该是排序

I only want to sort the rows once and I would like to order two columns.我只想对行进行一次排序,我想订购两列。

You can use sort() to sort the table您可以使用sort()对表格进行排序

 $('tbody tr').sort(function(a, b) { var td1 = $(a).find('td'), td2 = $(b).find('td'); // condition for sort - compare with first column if they are equal then compare with second column return (td1.eq(0).text() > td2.eq(0).text() || (td1.eq(0).text() == td2.eq(0).text() && td1.eq(1).text() > td2.eq(1).text())) || 0; }).appendTo('table tbody');
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <table> <thead> <tr> <th> Group</th> <th>pos</th> <tr> </thead> <tbody> <tr> <td> b </td> <td>2</td> </tr> <tr> <td> c </td> <td>1</td> </tr> <tr> <td> b </td> <td>1</td> </tr> <tr> <td> a </td> <td>1</td> </tr> </tbody> </table>

Or或者

 $('tbody tr').sort(function(a, b) { var td1 = $(a).find('td'), td2 = $(b).find('td'); // condition for sort - compare with first column if they are equal then compare with second column if (td1.eq(0).text() > td2.eq(0).text() || (td1.eq(0).text() == td2.eq(0).text() && td1.eq(1).text() > td2.eq(1).text())) return 1; else if (td1.eq(0).text() < td2.eq(0).text() || (td1.eq(0).text() == td2.eq(0).text() && td1.eq(1).text() < td2.eq(1).text())) return -1; return 0; }).appendTo('table tbody');
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <table> <thead> <tr> <th> Group</th> <th>pos</th> <tr> </thead> <tbody> <tr> <td> b </td> <td>2</td> </tr> <tr> <td> c </td> <td>1</td> </tr> <tr> <td> b </td> <td>1</td> </tr> <tr> <td> a </td> <td>1</td> </tr> </tbody> </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM