我有下表,其中包含三列(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,但是可以肯定地通过数据属性对其进行改进,以使其更加高效
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句