Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 17.03.2019
Сообщений: 31

Сортировка таблицы

23.12.2020, 11:02. Показов 2501. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Нужно сортировать таблицу (щелкаем на заголовок столбца, сортируется столбец)
Я что-то застрял на этом, подскажите пожалуйста кто шарит:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE HTML>
<!-- Do not remove and do not change this string -->
<html lang=ru>
<!-- сортировать таблицу -->
<head>
<meta charset=utf-8>
<title>Table Sorting</title>
<script>
    let sortButton1 = document.getElementById('col1');
    let sortButton2 = document.getElementById('col2');
    col1.addEventListener("click", ()=>sortTable(0))
    col2.addEventListener("click", ()=>sortTable(1))
    function sortTable(col) {
        [].slice.call(rows).sort(function(rowA, rowB) {
        if (col) {
            return rowA.cells[col].innerHTML - rowB.cells[col].innerHTML;
        }
</script>
</head> 
<body>
<table border="1px" cellpadding="10px" id="mytab">
    <thead bgcolor="aqua">
                <tr>
               <td id="col1" align="center" >Фамилия</td>
               <td id="col2" align="center" >Телефон</td>
                </tr>
    </thead>
    <tbody>
    <tr>
        <td>Яковлев</td>
        <td>7453217</td>
    </tr>
    <tr>
        <td>Иванов</td>
        <td>3453212</td>
    </tr>
    <tr>
        <td>Бендер</td>
        <td>8453212</td>
    </tr>
    <tr>
        <td>Паниковский</td>
        <td>6453212</td>
    </tr>
    <tr>
        <td>Петров</td>
        <td>8765432</td>
    </tr>
    <tr>
        <td>Сидоров</td>
        <td>5432345</td>
    </tr>
    <tr>
        <td>Македонский</td>
        <td>8765233</td>
    </tr>
    <tr>
        <td>Иоанн 23</td>
        <td>2345432</td>
    </tr>
    </tbody>
</table>
</body>
</html>
<!-- Do not remove and do not change this string -->
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2020, 11:02
Ответы с готовыми решениями:

Сортировка таблицы в обратном порядке
Добрый день, подскажите, есть шаблон админки покупной, там есть готовая таблица и в ней есть сортировка данных (от 1 до последней записи...

Сортировка таблицы
Есть код для сортировки таблицы,но вот проблема,не могу в нем разобраться,может кто-нибудь поможет с комментариями,или может есть код проще...

Сортировка таблицы
Всем привет. Нужна сортировка столбиков таблицы. Ситуация следдующая: 1. В первом столбике находяться критерии по которым сортировать ...

1
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
23.12.2020, 16:39
Лучший ответ Сообщение было отмечено DrType как решение

Решение

SinDao, во-первых вы работаете с dom-моделью(получаете элементы по id) до её загрузки. Вам надо либо обернуть свой код в листенер по DOMContentLoaded, либо, как часто делают в страничках подобного масштаба, переместить свой тег script с кодом в конец документа.
То что вы делаете дальше в sortTable - вообще странно: вы не закрываете скобки, непонятно откуда берёте rows и сортировать - сортируете, но только с результатами сортировки вы ничего не делаете
Кстати, про сортировку - она у вас рассчитана только на числовые данные, хотя в таблице есть и иные.

На этом форуме я уже решал почти такую же задачу, вот код для вашего случая(надо поместить его в конец документа):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
col1.addEventListener("click", ()=>sortTable(0))
col2.addEventListener("click", ()=>sortTable(1))
function sortTable(col) {
  const sortedRows = [...mytab.tBodies[0].rows].sort((rowA, rowB) => {
    const cellA = rowA.cells[col].innerText;
    const cellB = rowB.cells[col].innerText;
    return cellA - cellB || cellA.localeCompare(cellB);
    // сортировка и для чисел, и для строк
  });
  mytab.tBodies[0].append(...sortedRows);
}
P.S. Кстати задачка эта есть на learn
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2020, 16:39
Помогаю со студенческими работами здесь

Сортировка таблицы
Доброго времени суток, возник вопрос, как мне сделать сортировку таблицы с расписанием авиарейсов. Суть такова, какие-то рейсы прибывают,...

Сортировка таблицы Javascript
Возможно ли как-нибудь сделать чтобы сортировался не один столбец а все. function createTbl() { var tbl =...

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

Сортировка таблицы по столбцам
Написал скрипт, стандарты оформления кода еще не успел применить. Напишите, что лучше исправить и какие недочеты. window.onload =...

Сортировка таблицы Javascript
Возможно ли как-нибудь сделать чтобы сортировался не один столбец а все. function createTbl() { var tbl =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru