сортировка массива
здравствуйте. делаю сортировку таблицы.
добавляю отсортированные элементы в массив. задаю функцию сортировки. Но она не работает. сортирует не по порядку. мне нужно, чтобы было 1, 3, 11 и т.д. а функция работает так: 1, 11, 3 помогите, пожалуйста разобраться. <table class="sort" id="sort" align="center"> <tr id="zag"> <td>ID</td> <td>Имя</td> <td>Фамилия</td> <td>Сайт</td> <td>Переключалка стилей</td> </tr> <tr> <td>1</td> <td>Александр</td> <td>Шуркаев</td> <td><a href="#">htmlcoder.visions.ru</a></td> <td>Не-а</td> </tr> <tr> <td>123</td> <td>Пол</td> <td>Соуден</td> <td><a href="#">idontsmoke.co.uk</a></td> <td>Угу</td> </tr> <tr> <td>3</td> <td>Джеффри</td> <td>Зельдман</td> <td><a href="#">zeldman.com</a></td> <td>Угу</td> </tr> <tr> <td>44</td> <td>Аарон</td> <td>Будман</td> <td><a href="#">youngpup.net</a></td> <td>Не-а</td> </tr> <tr> <td>11</td> <td>Глен</td> <td>Мерфи</td> <td><a href="#">glenmurphy.com</a></td> <td>Не-а</td> </tr> <tr> <td>15</td> <td>Даниель</td> <td>Боган</td> <td><a href="#">waferbaby.com</a></td> <td>Не-а</td> </tr> <tr> <td>33</td> <td>Ден</td> <td>Бенджамин</td> <td><a href="#">hivelogic.com</a></td> <td>Угу</td> </tr> </table>
var table = document.getElementById("sort");
var zag = document.getElementById("sort").rows[0].cells;
var stroke = document.getElementById("sort").rows;
function perebor(zg)
{
for (i=0; i<zg.length; i++)
{
zg[i].onclick = function ()
{
index = this.cellIndex;
cellRezult = [];
function comp(a, b) {
if (a > b) return 1;
if (a < b) return -1;
}
for (i=1; i<table.rows.length; i++)
{
cellRezult[i-1] = [];
cellRezult[i-1][0] = table.rows[i].getElementsByTagName("td").item(index).innerHTML;
cellRezult[i-1][1] = table.rows[i];
}
cellRezult.sort(comp);
for (i=0; i<cellRezult.length; i++)
{
table.appendChild(cellRezult[i][1]);
}
}
}
}
perebor(zag);
|
Удали class="sort" в 1 строке:
<table class="sort" id="sort" align="center"> Или назови класс как-нибудь по-другому. |
спасибо
|
Цитата:
Цитата:
|
function comp(a, b)
{
if(+a[0] > +b[0]) return 1;
if(+a[0] < +b[0]) return -1;
}
|
Strongman,
тоже не верно |
сортировка таблицы по клику на ячейку первой строки
gazman,
шифровка из центра ...
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table class="sort" id="sort" align="center">
<tr id="zag">
<td>ID</td>
<td>Имя</td>
<td>Фамилия</td>
<td>Сайт</td>
<td>Переключалка стилей</td>
</tr>
<tr>
<td>1</td>
<td>Александр</td>
<td>Шуркаев</td>
<td><a href="#">htmlcoder.visions.ru</a></td>
<td>Не-а</td>
</tr>
<tr>
<td>123</td>
<td>Пол</td>
<td>Соуден</td>
<td><a href="#">idontsmoke.co.uk</a></td>
<td>Угу</td>
</tr>
<tr>
<td>3</td>
<td>Джеффри</td>
<td>Зельдман</td>
<td><a href="#">zeldman.com</a></td>
<td>Угу</td>
</tr>
<tr>
<td>44</td>
<td>Аарон</td>
<td>Будман</td>
<td><a href="#">youngpup.net</a></td>
<td>Не-а</td>
</tr>
<tr>
<td>11</td>
<td>Глен</td>
<td>Мерфи</td>
<td><a href="#">glenmurphy.com</a></td>
<td>Не-а</td>
</tr>
<tr>
<td>15</td>
<td>Даниель</td>
<td>Боган</td>
<td><a href="#">waferbaby.com</a></td>
<td>Не-а</td>
</tr>
<tr>
<td>33</td>
<td>Ден</td>
<td>Бенджамин</td>
<td><a href="#">hivelogic.com</a></td>
<td>Угу</td>
</tr>
</table>
<script>
window.addEventListener("DOMContentLoaded", function() {
(function(f) {
function g(c) {
return function(b, a) {
b = b.cells[c].textContent;
a = a.cells[c].textContent;
b = +b || b;
a = +a || a;
return b > a ? 1 : b < a ? -1 : 0
}
}
var d = document.querySelector(f),
e = [].slice.call(d.rows, 1);
[].slice.call(d.rows[0].cells).forEach(function(c, b) {
var a = 0;
c.addEventListener("click", function() {
e.sort(g(b));
a && e.reverse();
e.forEach(function(a) {
d.appendChild(a)
});
a ^= 1
})
})
})(".sort")
});
</script>
</body>
</html>
|
Цитата:
|
Цитата:
|
рони,
спасибо. всё круто. разбираюсь в Вашем коде теперь)) а для моего варианта можно поправить? или всё безнадёжно? |
| Часовой пояс GMT +3, время: 10:24. |