Как удалить из Select все имеющиеся option
Здравствуйте!
Уже второй раз обращаюсь с select. Что-то у меня никак не получается удалить все, что имеется уже в select. При выборе цвета iPhone, js код проверяет, есть ли что-то в select, если да, то удаляет и создает новые, если нет, то просто создает новые. Разметка: <select name="icolor" id="icolorphone_61"> <option value="Черный">Черный</option> <option value="Золотой">Золотой</option> </select> Вот код: var prodarr = JSON.parse(request.responseText); var list = document.querySelector('#icolorphone_'+id); console.log(list.options); if (list.options != 0) { for (var j = 0; j < list.options.length; j++){ list.removeChild(list.children[j]); //тут удаляет 1 элемент и выходит, даже если элементов >1 } } for (var i = 0; i < prodarr.length; i++){ Posting(id, prodarr[i]); } Вот страница с которой проблема: http://iphone.glazhost.tk/#showmodal_61 |
Попробуйте так:
var prodarr = JSON.parse(request.responseText); var list = document.querySelector('#icolorphone_'+id); console.log(list.options); if (list.options != 0) { var optionsCount=list.options.length; for (var j = 0; j < optionsCount; j++){ list.removeChild(list.children[j]); //тут удаляет 1 элемент и выходит, даже если элементов >1 } } for (var i = 0; i < prodarr.length; i++){ Posting(id, prodarr[i]); } Условие в for проверяется каждую итерацию. Изначально у вас было 2 элемента, первый удалили - j=1, но и кол-во элементов теперь не 2, а 1, поэтому условие 1<1 не выполняется и программа выходит из цикла. |
finlolo,
заменить строки 3 - 8 на list.options.length = 0; |
finlolo,
или в строке 6 заменить j на ноль list.removeChild(list.children[0]); |
Спасибо всем большое!
|
Часовой пояс GMT +3, время: 00:57. |