假设我有这样的代码:
<table>
<tr>
<th>name</td>
<th>price</td>
</tr>
<tr>
<td>a</td>
<td class="sort">5</td>
</tr>
<tr>
<td>b</td>
<td class="sort">3</td>
</tr>
<tr>
<td>b</td>
<td class="sort">8</td>
</tr>
<tr>
<td>b</td>
<td class="sort">2</td>
</tr>
<tr>
<td>b</td>
<td class="sort">6</td>
</tr>
<tr>
<td>b</td>
<td class="sort">20</td>
</tr>
</table>
但是应该这样安排:
<table>
<tr>
<th>name</td>
<th>price</td>
</tr>
<tr>
<td>b</td>
<td class="sort">2</td>
</tr>
<tr>
<td>b</td>
<td class="sort">3</td>
</tr>
<tr>
<td>a</td>
<td class="sort">5</td>
</tr>
<tr>
<td>b</td>
<td class="sort">6</td>
</tr>
<tr>
<td>b</td>
<td class="sort">8</td>
</tr>
<tr>
<td>b</td>
<td class="sort">20</td>
</tr>
</table>
在表格数据的基础上排列表格数据。
注意:该类将被定义为
class="sort"
提前致谢
更新:
我希望在没有用户点击的情况下安排表格。
最佳答案
通过使用$.makeArray
将行转换为数组,您可以在数组上使用本机javascript sort()
。我对数字进行了排序,因为它似乎适用
演示:http://jsfiddle.net/3MBPF/
function sortNum(a, b) {
return 1 * $(a).find('.sort').text() < 1 * $(b).find('.sort').text() ? 0 : 1;
}
$(function() {
var elems = $.makeArray($('tr:has(.sort)').remove())
elems.sort(sortNum)
$('table').append($(elems));
});