сортировка массива
здравствуйте. делаю сортировку таблицы.
добавляю отсортированные элементы в массив. задаю функцию сортировки. Но она не работает. сортирует не по порядку. мне нужно, чтобы было 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"> Или назови класс как-нибудь по-другому. |
спасибо
|
gazman, и что помогло?
|
Цитата:
Цитата:
|
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, время: 21:50. |