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, время: 11:35. |