Я знаю, что есть много ответов на этот вопрос, но ни один из них не кажется мне подходящим. Допустим, у меня есть таблица
<table id="myTable">
<tr>
<th>Name</th>
<th>Country</th>
</tr>
<tr>
<td>Berglunds snabbkop</td>
<td>3</td>
</tr>
<tr>
<td>North/South</td>
<td>1</td>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>43</td>
</tr>
<tr>
<td>Koniglich Essen</td>
<td>23</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>54</td>
</tr>
</table>
Я хочу отсортировать эту таблицу на основе значения вторых данных, то есть строка таблицы, содержащая данные 54, будет первой строкой. В W3Schools есть соответствующий ответ, который сортирует таблицу по алфавиту. Я попробовал это
function sortTable() {
var table, rows, switching, i, x, y, shouldSwitch;
table = document.getElementById("myTable");
switching = true;
while (switching) {
switching = false;
rows = table.rows;
for (i = 1; i < (rows.length - 1); i++) {
shouldSwitch = false;
x = rows[i].getElementsByTagName("TD")[1];
y = rows[i + 1].getElementsByTagName("TD")[1];
if (x.innerHTML > y.innerHTML) {
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
}
}
}
Но результат не тот, который я ожидал.