Программирование > JavaScript & JScript

Удаление узла и всех его детей

(1/2) > >>

dub:
Пытаюсь написать функцию deleteNode()  для удаления узла и всех его прямых и опосредованных детей. По идее эта функция должна вызываться рекурсивно, если дети есть, для каждого из детей. А если у них есть дети, то для каждого из их детей. Когда же у узла не остается детей, то удалять его методом removeNode(). Как бы это сотворить?

mike:
Ну и в чем проблема, собственно?

dub:
mike
Хороший вопрос. Просто не захотел выкладывать то, что не хочет работать. Вот оно:

--- Код: ---function deleteNode(object) {
var i;
if (object.tagName && object.childNodes) {
for(i=0; i

mike:
А корневой узел в твоем варианте удаляется?
Думаю, вот в чем проблема. После удаления потомков нужно удалить сам узел, а у тебя этого нет. Проверь этот вариант:

--- Код: ---
function deleteNode(object) {
var i;
if (object.tagName && object.childNodes) {
for(i=0; i

dub:
mike
Так пробовал. Вот что получается. Если у корневого узла двое детей, каждый из которых имеет своих детей, то прохождение вглубь происходит только один раз, а после этого удаляется корневой узел. Второй же ребенок зависает. Пример: необходимо удалить строку таблицы:

--- Код: ---
1
2
--- Конец кода ---

После применения такой функции имеем вот что:

--- Код: ---2
--- Конец кода ---

Вот
--- Цитировать ---в чем проблема, собственно
--- Конец цитаты ---

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии