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? |
потому что некоторые браузеры пропуск между отдельными тегами тоже считают за 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) } |
Возможно, я покажусь неоригинальным, но
function delete_options() { document.getElementById('drop_down1').innerHTML = ''; } |
из твоего примера нельзя сделать другой чтобы удаить все кроме первого ну и т.д. То есть непонятно, как работать с дочерними нодами через DOM.
|
ZoNT, а зачем?
|
чтобы знать, как работать с нодами черз дом
|
Дык мы тут options из select удаляем или учебник пишем?
|
Мы тут на форуме людям помогаем. Делать всё за них - это не помощь.
А вот научить их что-то делать самостоятельно - это помощь. |
Научить писать эффективный код.
|
Чтобы научить человека писать эффективный код сначала надо показать, чем он отличается от неэффективного.
|
Kolyaj,
Приведенный тобой код где-то не работает(ал), я в этом уверен. Когда решал подобную задачу единственным кросс-браузерным вариантом оказалось: // list - Элемент <select> while (list.length > 0) list.options[0] = null; list.options[0] = new Option('', 0, false, false); |
Цитата:
|
сорри. не прочитал код полностью, увидел removeChild, и впомнилась своя ошибка, когда только начинал
|
Часовой пояс GMT +3, время: 01:10. |