Сортировка таблицы.
Есть таблица:
<body onload="align()"> ... <table id="anketa"> <tr> <td>Имя</td> <td>Ответ</td> </tr> <tr> <td>Леонов Денис</td> <td>Да</td> </tr> <tr> <td>Шилов Кеша</td> <td>Да</td> </tr> ... <tr> <td>Маркин Игорь</td> <td>Нет</td> </tr> </table>
function align () {
anketa=document.getElementById('anketa');
anketa.lines=anketa.getElementsByTagName('tr').length;
anketa.columns=anketa.getElementsByTagName('tr')[0].getElementsByTagName('td').length;
for (i=0; i<anketa.lines; i++) {
anketa[i]=anketa.getElementsByTagName('tr')[i];
anketa[i].style.border='1px solid #f00';
for (j=0; j<anketa.columns; j++) {
anketa[i][j]=anketa[i].getElementsByTagName('td')[j];
anketa[i][j].style.border='1px solid #fff';
if (i==0) anketa[0][j].addEventListener('click', function() {qsorting(j)}, false);
}
}
sorting(0);
}
function sorting (number) {
i=1;
for (i=1; i<9; i++) {
x=1;
for (j=1; j<10-i; j++)
if (anketa[x][number].innerHTML<anketa[j][number].innerHTML) x=j;
//Ставим наименьший элемент в конец
anketa.removeChild(anketa[x]);
anketa.appendChild(anketa[x]);
dat=anketa[x];
anketa[x]=anketa[j-1];
anketa[j-1]=dat;
}
}
Я почему-то не могу обратится к строкам таблицы как anketa[x], когда при сортировке пытаюсь засунуть строку anketa[x] в конец таблицы. Хромированный ругается так: Код:
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8anketa.removeChild(anketa[x]); В чём может быть проблема? |
В данном скрипте проблем может быть куча!
Во-первых, почему не используешь var? Все переменные пишется свойствами в window. Например,
.addEventListener('click', function() {qsorting(j)}, false);
Здесь уже есть ошибка, но то что j - глобальная переменная, да еще и используется в разных функциях - это ваще край...Во-вторых, использовать DOM-элементы для хранения своей инфы - бред какой-то. Да и вообще, все здесь написанное - бред, и говорит о полном непонимании. |
| Часовой пояс GMT +3, время: 06:22. |