我有一个表排序器功能,该功能仅在某些列上有效,并且仅在单击任何内容时才对第一列进行正确排序。但是,如果我单击first和last,它将以一种难以理解的方式对表格进行排序。
我是JavaScript的新手,即使我能够解决一些问题,也无法使其正常工作100%。
这是我的小提琴:https : //jsfiddle.net/m_tibo/0t83no14/4/
这是我的功能:
// TABLESORTER
function accordionTable(i, elem) {
var table = $(elem),
tbody = table.find('tbody'),
th_index = 0,
th_sortType = "int";
function mapTDs(i, elem) {
var txt = $("td", elem).eq(th_index).text();
$(elem).attr("data-sort", txt);
}
function sortAsc(a, b) {
var aData = $(a).attr("data-sort"),
bData = $(b).attr("data-sort");
if (th_sortType == "string") {
return +bData < +aData ? 1 : -1; // Integer
} else {
return bData < aData ? 1 : -1; // String or else
}
}
//header sort
table.on("click", "th", function() {
th_sortType = $(this).data('sort');
th_index = $(this).index();
tbody = table.find('tbody').each(mapTDs);
tbody.sort(sortAsc).detach().appendTo(table);
});
}
$('table').each(accordionTable);
我从功能中期望的是对每列上的表进行升序和降序排序。非常感谢您的帮助。
相关分类