Сортировка таблицы.
Есть таблица:
<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 8 anketa.removeChild(anketa[x]); В чём может быть проблема? |
В данном скрипте проблем может быть куча!
Во-первых, почему не используешь var? Все переменные пишется свойствами в window. Например, .addEventListener('click', function() {qsorting(j)}, false);Здесь уже есть ошибка, но то что j - глобальная переменная, да еще и используется в разных функциях - это ваще край... Во-вторых, использовать DOM-элементы для хранения своей инфы - бред какой-то. Да и вообще, все здесь написанное - бред, и говорит о полном непонимании. |
Часовой пояс GMT +3, время: 10:17. |