我有一个包含三列(ID、日期和来源)的下表。我想根据源列对该表进行排序。 我不想按字母或数字排序。我希望它们的排序方式就像来自 ON 源的所有行将首先出现在表中,然后是来自 MB 源的所有行,依此类推Javascript 或 jquery。我搜索了几乎所有与排序相关的线程。但我没能解决这个问题。我对此很陌生,所以请帮助我完成这项工作。非常感谢您的帮助。
<table>
<tr>
<th>ID</th>
<th>Date</th>
<th>Source</th>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>ON</td>
</tr>
<tr>
<td>94</td>
<td>2013-06-05</td>
<td>MB</td>
</tr>
<tr>
<td>80</td>
<td>2011-07-08</td>
<td>AB</td>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>ON</td>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>MB</td>
</tr>
</table>
最佳答案
可以根据源已知的顺序创建数组,并使用该数组索引进行排序
var sorters =['ON','AB','MB']
var $rows = $('tr:gt(0)').sort(function(a, b){
var aSrcIdx =sorters.indexOf( $(a).find('td:last').text() );
var bSrcIdx = sorters.indexOf( $(b).find('td:last').text());
return aSrcIdx > bSrcIdx;
});
$('table').append($rows);
我单独保留了 html,但它肯定可以通过数据属性进行改进,以提高效率
关于javascript - 使用 jquery 或 Javascript 自定义表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227960/