I am following the answer given by @charlietfl on Custom table sort using jquery or Javascript.
The table does not seem to be sorting for me.
My code:
var custom_sort =['ABC','MNO','XYZ'];
var $rows = $('tr:gt(0)').detach().sort(function(a, b){
var aSrcIdx =custom_sort.indexOf( $(a).find('td:last').text());
var bSrcIdx = custom_sort.indexOf( $(b).find('td:last').text());
return aSrcIdx > bSrcIdx;
});
$('#mytable').append($rows);
table, td, th { border: 1px solid black; }
#mytable {
width: 100%;
border-collapse: collapse;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id='mytable'>
<tr>
<th>ID</th>
<th>Date</th>
<th>Source</th>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>XYZ</td>
</tr>
<tr>
<td>80</td>
<td>2011-07-08</td>
<td>ABC</td>
</tr>
<tr>
<td>94</td>
<td>2013-06-05</td>
<td>MNO</td>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>MNO</td>
</tr>
<tr>
<td>50</td>
<td>2012-01-01</td>
<td>XYZ</td>
</tr>
<tr>
<td>75</td>
<td>2012-01-01</td>
<td>ABC</td>
</tr>
</table>
As you see the I want to be able to rows in the order of ABC,MNO,XYZ,ABC,MNO,XYZ
Why isn't the code working?
How do I custom sort my table to look like:
| ID | Date | Source |
|---|---|---|
| 80 | 2011-07-08 | ABC |
| 94 | 2013-06-05 | MNO |
| 50 | 2013-06-05 | XYZ |
| 75 | 2012-01-01 | ABC |
| 50 | 2012-01-01 | MNO |
| 50 | 2012-01-01 | XYZ |