HTML DOM, JavaScript для добавления/удаления рядов таблицы (часть 2)
posted in JavaScirpt |Я обещал рассказать как улучшить функцию удаления ряда таблицы, этим сегодня и займемся. Итак мы уже знаем, что у браузеров есть отличия в построении DOM дерева. Мы увидели, что Firefox и Safari создают дополнительный текстовый узел "\n" для каждого переноса строки в документе, есть два пути решения проблемы: 1й - удалять такие узлы, 2й - просто их пропускать.
1. Удаление "\n"
[javascript]
function DelLastRow(tid) {
var myTbl=document.getElementById(tid);
var deltr=myTbl.lastChild;
while (deltr.nodeType==3)
{ myTbl.removeChild(deltr);
deltr=myTbl.lastChild; }
myTbl.removeChild(deltr);
}
[/javascript]
2. Пропуск "\n"
[javascript]
function DelLastRow(tid) {
var myTbl=document.getElementById(tid);
var deltr=myTbl.lastChild;
while (deltr.nodeType==3)
{ deltr=deltr.previousSibling; }
myTbl.removeChild(deltr);
}
[/javascript]
В последней функции мы использовали previousSibling - это ссылка на предыдущий соседний узел, также можно использовать nextSibling, чтоб перейти на следующий узел-сосед. В приницпе в функции, которая печатала DOM дерево, мі могли испозовать другой цикл: 'while' вместо of 'for':
[javascript]
while (cur) {
...
cur=cur.nextSibling;
}
[/javascript]