공부
[JS] sort by th in load data
승가비
2024. 10. 7. 12:28
728x90
function sortTable(table, index, asc) {
var rows = table.find('tbody tr').get();
rows.sort(function (a, b) {
var cellA = $(a).children('td').eq(index).text().trim();
var cellB = $(b).children('td').eq(index).text().trim();
if ($.isNumeric(cellA) && $.isNumeric(cellB)) {
return asc ? cellB - cellA : cellA - cellB;
} else {
return asc ? cellB.localeCompare(cellA) : cellA.localeCompare(cellB);
}
});
$.each(rows, function (index, row) {
table.children('tbody').append(row);
});
}
$(document).ready(function () {
$('th').click(function () {
var index = $(this).index();
var table = $(this).closest('table');
var asc = $(this).hasClass('sorted-asc');
sortTable(table, index, asc);
table.find('th').removeClass('sorted-asc sorted-desc');
$(this).toggleClass('sorted-asc', !asc).toggleClass('sorted-desc', asc);
});
728x90