Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
new TableSort({
idTbl: 'idTbl',
defSortCol: 0,
firstRow: 1,
needClasses: ['add', 'edd'],
listClasses: ['odd', '']
});
var arr = new Array(10);
и var arr = [10];
— совсем не одно и то же. for (j=0; j<allTrs[i].getElementsByTagName('td').length; j++) {
tblData[i-numColTr][j] = allTrs[i].getElementsByTagName('td').item(j).innerHTML;
}
var cells = allTrs[i].getElementsByTagName('td');
for (j = 0, cell; cell = cells[j]; j++) {
tblData[i-numColTr][j] = cell.innerHTML;
}
var allTrs = tbl.tBodies[0].getElementsByTagName('tr');
...
this.initSort = function (newCol, normalize) {
if (newCol == curSortCol)
{
curSortUp = !curSortUp;
}
else
{
curSortUp = true;
curSortCol = newCol;
}
// вычисляем значение для сортировки
for (var i = 0, row; row = allTrs[i]; i++)
row.sortValue = normalize(row.childNodes[columnNum].innerHTML);
// сортируем
allTrs.sort(function(a, b){
return (a.sortValue > b.sortValue) || -(a.sortValue < b.sortValue);
});
if (!curSortUp)
allTrs.reverse();
// выставляем ряды в нужном порядке
for (var i = allTrs.length - 1, row, last = null; row = allTrs[i]; i--)
{
row.parentNode.insertBefore(row, last);
// тут можно сделать что-то с чередующимися классами
last = row;
}
initSort(1, Number); // для числовой сортировки
initSort(1, String); // для строковой
initSort(1, function(value){ return value.toLowerCase() }) // для строковой без учета регистра
initSort(1, function(value){ return +new Date(value) }) // для сортировки дат
// но здесь value должно быть определенного формата, либо же пишется функция разбора даты..
// даты лучше сортировать как числа
// в любом случае вы вольны определить значение для сортировки так как нужно,
// автоматически это сделать не получится
// Типовые сортировки можно сохранить в константы
TableSort.prototype.SORT_DATE = function(value){ return +new Date(value) };
...
table.initSort(1, table.SORT_DATE);
function _sort(a1, b1) {
...
if (parseFloat(a) && parseFloat(b)) {
return parseFloat(a) - parseFloat(b);
...
tr:nth-child(2n)
{
background: gray;
}
var infoTblSort = new TableSort("idTbl", 0);
Javascript. Сортировка таблицы