【发布时间】:2018-02-24 13:42:33
【问题描述】:
jquery 用数字对表格数据进行排序
我已按升序对该表进行了排序,但我希望它按 a1、a2、a3、a11 的顺序排列。
有人可以帮忙吗?
function sortTable(table, order) {
var asc = order === 'asc',
tbody = table.find('tbody');
tbody.find('tr').sort(function(a, b) {
if (asc) {
return jQuery('td:first', a).text().localeCompare(jQuery('td:first', b).text());
} else {
return jQuery('td:first', b).text().localeCompare(jQuery('td:first', a).text());
}
}).appendTo(tbody);
}
sortTable($('#mytable'),'asc');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table name="mytable" id="mytable">
<tbody>
<tr><td>a 11</td></tr>
<tr><td>a 3</td></tr>
<tr><td>a 2</td></tr>
<tr><td>a 1</td></tr>
</tbody>
</table>
【问题讨论】:
-
请记住
.sort()函数按字典顺序排序,这意味着11将始终位于1之后但在2之前。如果你想找自然排序,可以试试第三方插件,比如:natsort。 StackOverflow 上也有其他解决方案,只需搜索自然排序即可。
标签: javascript jquery sorting tablesort