|
|
|
| удаляю строки таблицы вот так:
for(var i=2, len=tbl.rows.length; i<len; i++) tbl.deleteRow(i); //первые 2 нужно пропустить
|
получаю ошибку:
Ошибка: uncaught exception: [Exception... "Index or size is negative or greater than the allowed amount"
code: "1" nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)" location: "http://ххх"]
|
Странно то что оно половину удаляет, половину нет. Скачет через 1 строку.
Тоесть например имеем строки 1,2,3,4... удаляет 2,4, а на остальные кидается такой ошибкой.
Проверил, вместо удаления просто выводить содержимое строк -- всё нормально...
что через deleteRow что removeChild одни и те же ошибки..
строки создавались динамически.. мб набадяжил чтото?:) | |
|
|
|
|
|
|
|
для: sl1p
(04.12.2008 в 08:09)
| | Представьте себе дом, положим, девятиэтажный.
Перед вами стоит задача сделать из этого дома всего лишь двухэтажный, т.е. надо разобрать семь этажей этого дома.
С какого этажа начнёте дом разбирать?
С девятого или с третьего?
Видимо, начнёте разбирать с девятого - так удобнее.
Когда удалите девятый этаж, получите дом восьмиэтажным.
Удалите восьмой - получите семиэтажный.
И так далее до удаления третьего этажа.
А таблицу вы начинаете "разбирать" почему-то начиная удалять с третьего этажа (строки) :-)
Забывая о том, что после удаления каждого этажа общая высота дома (здесь - общее количество строк в таблице) уменьшается на единицу (а у вас переменная len ВСЕГДА остаётся той, что и была до начала "разборки" таблицы).
Правильно будет так:
while (tbl.rows.length > 2) {tbl.deleteRow (tbl.rows.length - 1)}
| или (если с использованием цикла) так:
for (var i = tbl.rows.length; i > 2; i--) tbl.deleteRow (i);
|
| |
|
|
|
|
|
|
|
для: PAT
(04.12.2008 в 08:29)
| | Хм, таки да.Невнимательность это плохо)
Как обычно, Спасибо огромное:) | |
|
|
|