Быстрая сортировка таблицы по ее первому столбцу с помощью Javascript или jQuery

У меня есть таблица, которая динамически заполняется из FullCalendar . Проблема в том, что FullCalendar не заботится о своем исходном порядке.

Таблица выглядит следующим образом:

<table id="caltbl">
   <thead>
       <tr> <th> </th>   <th> Date </th>   <th> hours </th>  ... </tr>
   </thead>
   <tbody>
       <tr> <td class="sortnr">1</td>   <td></td> ... </tr>
       <tr> <td class="sortnr">3</td>   <td></td> ... </tr>
       <tr> <td class="sortnr">2</td>   <td></td> ... </tr>
       <tr> <td class="sortnr">4</td>   <td></td> ... </tr>
   </tbody>
</table>

Первая строка каждой строки содержит номер, по которому таблица должна быть отсортирована.

У меня был этот код, чтобы отсортировать его:

    var rows = $('#caltbl > tbody').children('tr').detach();

    for (var counter = 1; counter<=rows.length; counter++) {
        $(rows).each(function(index) {
            if ($(this).find(".sortnr").text()==counter){
               $('#caltbl > tbody:last').append($(this));
            }
        });
    }

Он отлично работает в Firefox, но вызывает у меня большую головную боль в Internet Explorer, потому что их более 500, и он зависает. Я мог бы добавить setTimeout , но это не решило бы реальной проблемы. Сортировка выполняется медленно. Как можно быстрее это отсортировать?

Вместо того, чтобы начинать с

html, как я уже сказал, он заполняется динамически, поэтому у меня есть Array , который содержит HTML. 1 элемент на (без сортировки)

23
задан Brian Tompsett - 汤莱恩 30 October 2016 в 14:53
поделиться