Вот функция, которую я использую:
function sortTable( table, colNum )
{
var n = table.rows.length - 1;
do
{
var newn = 0;
for( i = 2 ; i <= n ; i++ )
{
if( table.rows[i-1].cells[colNum].innerHTML.toUpperCase() > table.rows[i].cells[colNum].innerHTML.toUpperCase() )
{
table.insertBefore( table.rows[i], table.rows[i-1] );
newn = i;
}
}
n = newn;
}
while( n > 0 );
}
table
- это объект таблицы DOM, а colNum
- это индекс столбца в таблице (на основе 0).Предполагается, что в таблице есть строка заголовка (которая не будет отсортирована).Для сортировки большой таблицы (сотни строк) потребуется несколько секунд, но таблицы меньшего размера сортируются мгновенно.