我正在寻找在页面加载时按字母顺序对html表进行排序的方式,与对无序列表进行排序的方式相同。

我尝试使用下面的代码,但是没有用:

    var mylist = $('#myTable');
var listitems = mylist.children('tr').get();
listitems.sort(function(a, b) {
   return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase());
})
$.each(listitems, function(idx, itm) { mylist.append(itm); });

然后
<table id="myTable">
<tr>
<td>B</td>
<td>12/01/2016</td>
</tr>
<tr>
<td>A</td>
<td>12/01/2016</td>
</tr>
</table>

我希望它按行的第一列按字母顺序对表进行排序。

我在网上找不到任何有关此的信息。

最佳答案

您的问题是此行未返回您的trs:

var listitems = mylist.children('tr').get();

修改为以下内容,一切正常。
var listitems = mylist.find('tr');

var mylist = $('#myTable');
var listitems = mylist.find('tr');
listitems.sort(function(a, b) {
   return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase());
})
$.each(listitems, function(idx, itm) { mylist.append(itm); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="myTable">
<tr>
<td>B</td>
<td>12/01/2016</td>
</tr>
<tr>
<td>A</td>
<td>12/01/2016</td>
</tr>
</table>

10-05 20:43