Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Help (https://javascript.ru/forum/misc/1741-help.html)

qwe 11.09.2008 14:26

Help
 
Пишу функцию, которая удаляет option из drop down list:
function delete_options()
{
    var k = document.getElementById('drop_down1');
    var temp = document.getElementById('drop_down1').getElementsByTagName('option');
    for (var i=0;i< temp.length;i++)
        {
            k.removeChild(temp[i]);
        }
}


Подскажите почему удаляются через 1?

Gvozd 11.09.2008 15:15

потому что некоторые браузеры пропуск между отдельными тегами тоже считают за Child
подробней в начале статьи http://javascript.ru/start/dom/search-spec

ZoNT 11.09.2008 15:25

Цитата:

Сообщение от Gvozd (Сообщение 5570)
потому что некоторые браузеры пропуск между отдельными тегами тоже считают за Child
подробней в начале статьи http://javascript.ru/start/dom/search-spec

Причём здесь отступы, если получены только опшны???

попробуй так:
function delete_options() {
    var k = document.getElementById('drop_down1');
    while (k.childNodes.length) k.removeChild(k.firstChild)
}

Kolyaj 11.09.2008 15:41

Возможно, я покажусь неоригинальным, но
function delete_options() {
  document.getElementById('drop_down1').innerHTML = '';
}

ZoNT 11.09.2008 15:43

из твоего примера нельзя сделать другой чтобы удаить все кроме первого ну и т.д. То есть непонятно, как работать с дочерними нодами через DOM.

Kolyaj 11.09.2008 15:47

ZoNT, а зачем?

ZoNT 11.09.2008 16:03

чтобы знать, как работать с нодами черз дом

Kolyaj 11.09.2008 16:25

Дык мы тут options из select удаляем или учебник пишем?

ZoNT 11.09.2008 17:17

Мы тут на форуме людям помогаем. Делать всё за них - это не помощь.
А вот научить их что-то делать самостоятельно - это помощь.

Kolyaj 11.09.2008 19:56

Научить писать эффективный код.


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