mikiveyn
@mikiveyn

Как запустить сортировку таблицы по клике на кнопку?

Добрый день, уважаемые участники форума. Сейчас использую вот такой код для сортировки столбцов в таблице :
<script>document.addEventListener('DOMContentLoaded', () => {

    const getSort = ({ target }) => {
        const order = (target.dataset.order = -(target.dataset.order || -1));
        const index = [...target.parentNode.cells].indexOf(target);
        const collator = new Intl.Collator(['en', 'ru'], { numeric: true });
        const comparator = (index, order) => (a, b) => order * collator.compare(
            a.children[index].innerHTML,
            b.children[index].innerHTML
        );
        
        for(const tBody of target.closest('table').tBodies)
            tBody.append(...[...tBody.rows].sort(comparator(index, order)));

        for(const cell of target.parentNode.cells)
            cell.classList.toggle('sorted', cell === target);
    };
    
    document.querySelectorAll('.table_sort thead').forEach(tableTH => tableTH.addEventListener('click', () => getSort(event)));
    
});
</script>

Скрипт работает отлично :
нажал на заголовок столбца и столбец сортировался от большего к меньшему, ещё раз нажал и уже от меньшего к большему.

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

Пример:

<table width="100%" style="font-size:.9em"   class="table_sort">
				<thead class="alert-info">
					<tr class="shapka">
					    <th class="ves" width="10%">Столбец</th>
					    <th class="ves" width="10%">Столбец 2</th>
						<th class="cana" width="32%">Столбец 3 - цена </th>		
					</tr>
.....


И при нажатии на кнопку происходила сортировка столбца 3

Буду очень признателен, если дадите подсказку , как решить этот вопрос :)
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Khalit
button.addEventListener("click", ()=>getSort({target:загаловок_столбца}) )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 21:25
5000 руб./за проект
28 нояб. 2024, в 18:46
3000 руб./за проект
28 нояб. 2024, в 17:46
10000 руб./за проект