Как отсортировать числовой столбец таблицы HTML по умолчанию с помощью javascript

у меня есть эта таблица

   <table name="mytable" id="mytable">
      <tbody>
        <tr>
        <th>Name</th>
        <th>Age</th>
        <th>LastName</th>
        </tr>
        <tr>
        <td>Dean</td>
        <td>18</td>
        <td>Tank</td>
        </tr>
        <tr>
        <td>Jean</td>
        <td>3</td>
        <td>Ted</td>
        </tr>
        <tr>
        <td>Frank</td>
        <td>11</td>
        <td>Marie</td>
        </tr>
        <tr>
        <td>Kid</td>
        <td>8</td>
        <td>Arnold</td>
        </tr>
        <tr>
        <td>Ted</td>
        <td>9</td>
        <td>Marie</td>
        </tr>
        <tr>
        <td>Ma</td>
        <td>10</td>
        <td>Jack</td>
        </tr>
        <tr>
        <td>Martin</td>
        <td>7</td>
        <td>Harvey</td>
        </tr>
        <tr>
        <td>Nelson</td>
        <td>16</td>
        <td>Tom</td>
        </tr>
      </tbody>
    </table>

Поэтому я пытаюсь отобразить его с возрастом столбца, отсортированным по убыванию. Я не нашел никакого решения для этого. Решения, которые я нашел, кажутся для алфавитных столбцов.

Самая большая проблема заключается в том, что таблица отображается со столбцом Возраст, уже отсортированным в порядке убывания, и пользователю не нужно нажимать заголовок или кнопку для сортировки.


person ILOveCoDe    schedule 04.08.2019    source источник
comment
данные статичны или создаются динамически?   -  person Nidhin Joseph    schedule 05.08.2019
comment
Если это статическая таблица, ну она маленькая, так что сортируйте вручную! Если объекты человека добавляются динамически в Javascript, отсортируйте их перед добавлением в разметку таблицы.   -  person John    schedule 05.08.2019
comment
Как уже сказал Джон, отсортируйте их перед добавлением в таблицу или, альтернативно, добавьте их в таблицу, а затем запустите функцию сортировки.   -  person Masoud Keshavarz    schedule 05.08.2019
comment
Возможный дубликат Сортировка таблицы HTML с помощью JavaScript   -  person Masoud Keshavarz    schedule 05.08.2019


Ответы (1)


Я смог найти решение, используя этот скрипт

<script>
function sortTable(){
var sorted = $('#myTable tbody tr').sort(function(a, b) {
  var a = $(a).find('td:first-child + td').text(), b = $(b).find('td:first-child + td').text();
  return b.localeCompare(a, false, {numeric: true})
})

$('#myTable').html(sorted);
}
sortTable();
</script>
person ILOveCoDe    schedule 05.08.2019