Как удалить из 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, время: 10:02. |