1. Генератор функций сравнения:
Код кода копирования следующим образом:
/**
* Генератор функций сравнения
*
* @param icol
* Количество строк данных
* @param sdatatype
* Тип данных строки
* @возвращаться
*/
Функция GenerateComParetrs (iCol, Sdatatype) {
Сравнение функции возврата (OTR1, OTR2) {
vvalue1 = преобразовать (otr1.cells [icol] .firstchild.nodevalue, sdatatype);
vvalue2 = преобразовать (otr2.cells [icol] .firstchild.nodevalue, sdatatype);
if (vvalue1 <vvalue2) {
возврат -1;
} else if (vvalue1> vvalue2) {
Возврат 1;
} еще {
Возврат 0;
}
};
}
2. Типы символов сравнения процессов:
Код кода копирования следующим образом:
/**
* Обработайте сортированный тип поля
*
* @param svalue
* Значение поля по умолчанию типа символа, то есть сравнение кодов ASCII
* @param sdatatype
* Тип поля поддерживает только форматы MM/DD/YYYY или MMMM DD, YYYYY (12 января 2004 г.)
* @возвращаться
*/
Функция конвертировать (svalue, sdatatype) {
Switch (sdatatype) {
случай "int":
вернуть Parseint (Svalue);
Case "float":
вернуть Parsefloat (Svalue);
Дело "дата":
вернуть новую дату (date.parse (svalue));
по умолчанию:
вернуть svalue.toString ();
}
}
3. Основная функция:
Код кода копирования следующим образом:
/**
* Сортировка столбцов таблицы по заголовку таблицы
*
* @param stableid
* Идентификатор таблицы для обработки <таблица идентификатора = ''>
* @param icol
* Идентификатор столбца поля, например: 0 1 2 3 ...
* @param sdatatype
* Полевой тип данных int, float, дата обрабатывается по умолчанию.
*/
Функция SortTable (stableId, iCol, sdatatype) {
var Otable = document.getElementById (stableId);
var otbody = otable.tbodies [0];
var coldatarows = otbody.rows;
var atrs = new Array;
for (var i = 0; i <coldatarows.length; i ++) {
atrs [i] = coldatarows [i];
}
if (otable.sortcol == icol) {
Atrs.reverse ();
} еще {
Atrs.sort (GenerateComParetrs (iCol, Sdatatype));
}
var ofragment = document.createdocumentfragment ();
for (var j = 0; j <atrs.length; j ++) {
Ofragment.AppendChild (ATRS [J]);
}
otbody.appendchild (offagment);
OTABLE.SORTCOL = ICOL;
}
Инкапсулируйте приведенный выше код вопроса в файл JS и ссылайтесь на его на HTML -странице.
Тест теста.html:
Код кода копирования следующим образом:
<html xmlns = "http://www.w3.org/1999/xhtml">
<TILE> Таблица Сортировка Cort </ title>
<script type = "text/javascript" src = "js/sorttable.js"> </script>
<тело>
<таблица границы = "1" id = "tblsort">
<thead style = "color: красный; Bgcolor: Blank">
<tr>
<th onclick = "sorttable ('tblsort', 0);" Style = "cursor: pointer"> lastname </ th>
<th onclick = "sorttable ('tblsort', 1, 'int');"
<th onclick = "sorttable ('tblsort', 2, 'date');"
</ tr>
</ thead>
<tbody>
<tr>
<td> a </ td>
<td> 1 </ td>
<TD> 5/9/2008 </td>
</ tr>
<tr>
<td> b </ td>
<td> 3 </ td>
<TD> 9/9/2008 </td>
</ tr>
<tr>
<td> d </ td>
<td> 6 </ td>
<TD> 4/4/2008 </td>
</ tr>
<tr>
<td> e </ td>
<td> -5 </ td>
<TD> 4/4/2007 </td>
</ tr>
<tr>
<td> h </ td>
<td> 34 </ td>
<TD> 8/8/2008 </td>
</ tr>
<tr>
<td> c </ td>
<td> 12 </ td>
<TD> 1/4/2018 </td>
</ tr>
</ tbody>
</ table>
</ body>
</ html>