Попытка отсортировать следующую таблицу по "rankscore" td от наибольшего числа к наименьшему.
<html>
<head>
<script src="js/jquery-1.12.3.min.js"></script>
</head>
<body>
<h4>Current Rank</h4>
<table id="rank">
<tbody>
<tr>
<td class="namecell">Joe:</td>
<td class="rankscore">7</td>
</tr>
<tr>
<td class="namecell">Jim:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Megan:</td>
<td class="rankscore">936</td>
</tr>
<tr>
<td class="namecell">Greg:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Will:</td>
<td class="rankscore">20</td>
</tr>
<tr>
<td class="namecell">Paul:</td>
<td class="rankscore">15</td>
</tr>
<tr>
<td class="namecell">Tammy:</td>
<td class="rankscore">133</td>
</tr>
<tr>
<td class="namecell">Chari:</td>
<td class="rankscore">123</td>
</tr>
<tr>
<td class="namecell">Ed:</td>
<td class="rankscore">6</td>
</tr>
<tr>
<td class="namecell">Hank:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Bill:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Al:</td>
<td class="rankscore">21</td>
</tr>
<tr>
<td class="namecell">Stacy:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Mack:</td>
<td class="rankscore">13</td>
</tr>
<tr>
<td class="namecell">Ira:</td>
<td class="rankscore">13</td>
</tr>
<tr></tr>
</tbody>
</table>
</body>
<script>
function sortTable(table, order) {
var asc = order === 'asc',
tbody = table.find('tbody');
tbody.find('tr').sort(function(a, b) {
if (asc) {
return $('td.rankscore', a).text().localeCompare($('td.rankscore', b).text());
} else {
return $('td.rankscore', b).text().localeCompare($('td.rankscore', a).text());
}
}).appendTo(tbody);
}
sortTable($('#rank'), 'desc');
</script>
</html>
Текущий код приводит к следующей таблице:
Megan: 936
Joe: 7
Ed: 6
Al: 21
Will: 20
Paul: 15
Tammy: 133
Hank: 13
Jim: 13
Greg: 13
Bill: 13
Ira: 13
Stacy: 13
Mack: 13
Chari: 123
Функция кажетсяпросто смотреть на первую цифру при сортировке, а не принимать во внимание все цифры.
Я не писал эту функцию сортировки, и мне сложно понять, что именно она делает.Я посмотрел страницу с объяснением localCompare, но это не очень помогло.