Показать сообщение отдельно
  #1 (permalink)  
Старый 17.05.2018, 05:47
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Сортировка таблицы
У меня есть таблица, которая сортирует строки. как сделать так, чтобы сортировка не касалась первого столбика (нумерации)

<!DOCTYPE html>
<html>
<head>
	<title>Сортер</title>
	<link rel="stylesheet" href="style.css">
</head>
<body>
<table id="ceo">
    <thead>
        <tr>
        	<th title="num">#</th>
            <th title="Name">Имя</th>
            <th title="Gender">Gender</th>
            <th title="Age">Age</th>
        </tr>
    </thead>
    <tbody>
        <tr>
        	<td>1</td>
            <td class="content">Алёша</td>
            <td class="content">М</td>
            <td class="content">22</td>
        </tr>
        <tr>
        	<td>2</td>
            <td class="content">Пётр</td>
            <td class="content">М</td>
            <td class="content">19</td>
        </tr>
        <tr>
        	<td>3</td>
            <td class="content">Яна</td>
            <td class="content">Ж</td>
            <td class="content">18</td>
        </tr>
    </tbody>
    <script src="jquery-3.2.1.slim.min.js"></script>
	<script src="script.js"></script>
</table>
</body>
</html>


$(function () {
  $('table')
    .on('click', 'th', function () {
      var index = $(this).index(),
          rows = [],
          thClass = $(this).hasClass('asc') ? 'desc' : 'asc';

      $('#ceo th').removeClass('asc desc');
      $(this).addClass(thClass);

      $('#ceo tbody tr').each(function (index, row) {
        rows.push($(row).detach());
      });

      rows.sort(function (a, b) {
        var aValue = $(a).find('.content').eq(index).text(),
            bValue = $(b).find('.content').eq(index).text();

        return aValue > bValue
             ? 1
             : aValue < bValue
             ? -1
             : 0;
      });

      if ($(this).hasClass('desc')) {
        rows.reverse();
      }

      $.each(rows, function (index, row) {
        $('#ceo tbody').append(row);
      });
    });
});
Ответить с цитированием