Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Неправильное удаление. (https://javascript.ru/forum/misc/46778-nepravilnoe-udalenie.html)

Web_genius 23.04.2014 17:31

Неправильное удаление.
 
Здравствуйте! Проблема с удалением всех узлов в теге. Использую этот код:
for (var i = 0; i < goodsBasket.childNodes.length ; i++) {
    goodsBasket.removeChild(goodsBasket.childNodes[i]);
}

Код не удаляет все дочерние узлы тега goodsBasket.
Спасибо за внимание.

Дзен-трансгуманист 23.04.2014 17:42

while ( goodsBasket.firstChild && goodsBasket.removeChild( goodsBasket.firstChild ));

Web_genius 23.04.2014 17:47

childNodes оказывается живая коллекция?

Дзен-трансгуманист 23.04.2014 17:50

Цитата:

Сообщение от Web_genius
childNodes оказывается живая коллекция?

Да, поэтому в вашем случае из-за инкремента все нечётные узлы пропускаются.

Web_genius 23.04.2014 17:55

Спасибо. в учебнике этого сайта не написано что это живая коллекция.
Исправьте пожалуйста http://learn.javascript.ru/traversing-dom

Aetae 23.04.2014 21:53

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 308978)
while ( goodsBasket.firstChild && goodsBasket.removeChild( goodsBasket.firstChild ));

Бессмыслено как-то: читаемость хуже, кода больше...
Почему не:
while(goodsBasket.firstChild) goodsBasket.removeChild( goodsBasket.firstChild );
?

Дзен-трансгуманист 24.04.2014 01:14

Цитата:

Сообщение от Aetae
читаемость хуже

Евреи вообще справа налево и не жалуются.)
Почему так написал - хз, да и пофиг.
Тебе эта строчка душевный покой нарушила? :)

Web_genius 24.04.2014 15:45

Цитата:

Сообщение от Aetae
Бессмысленно как-то: читаемость хуже, кода больше...

Мне тоже не нравится, тоже менял.

Aetae 24.04.2014 22:31

А вообще, чтоб по фен-шую, надо так:
while( goodsBasket.hasChildNades() ) {
    goodsBasket.removeChild( goodsBasket.lastChild );
}
=)


Часовой пояс GMT +3, время: 19:58.