Программирование > JavaScript & JScript
Удаление строк таблицы (DOM)
Night_Wolf:
Вот что еще заметил: если функцию tableClear() запустить дважды, то удалит за второй заход оставшуюся строку. За раз не хочет ни в какую.
andymc:
Night_Wolf
значит индексы рядов при удалении смещаются
ПОпробуй
function TableClear()
{
var newElem = parent.document.getElementById("u_table");
for (var i=0; i<newElem.rows.length; i++)
{
newElem.deleteRow(0);
}
}
Night_Wolf:
andymc, идею понял, попробовал. Результат тот же.
Видимо действительно индексы рядов смещаються. Даже при принудительной установке индекса deleteRow глючит. Видать это какой-то баг ф-и DOM-а в самом Javascript. Еще заметил, что чем больше рядов в таблице, тем больше их остаеться после прогона через deleteRow.
Если б это еще обойти можна было?..
Пока думаю над альтернативой: поместить таблицу в DIV или SPAN, и удалять всю таблицу путем innerHTML. Правда потом придеться таблицу заново "рисовать", а это уже значительно трудо- и ресурсо-емней:(
Altaxar:
Night_Wolf
Тебе немного подсказали в чем дело, осталось немного домыслить, и не какой это не глюк DOM. я б сказал где ошибка, только ты обидешся, если не понимаешь юмора.
Вот решение:
function TableClear()
{
var newElem = parent.document.getElementById("u_table");
for (var i=newElem.rows.length-1; i>=0; i--)
{
newElem.deleteRow(i);
}
}
Night_Wolf:
Altaxar, ты прав. Да чего там обижаться:)
Выходит это все от того, что на изнанку прогонялось! Cам бы не додумал. Всем спасибо.
Навигация
Перейти к полной версии