23
Май
2008
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);
-
}
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);
-
}
В последней функции мы использовали previousSibling - это ссылка на предыдущий соседний узел, также можно использовать nextSibling, чтоб перейти на следующий узел-сосед. В приницпе в функции, которая печатала DOM дерево, мі могли испозовать другой цикл: 'while' вместо of 'for':
JAVASCRIPT:
-
while (cur) {
-
...
-
cur=cur.nextSibling;
-
}