Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2018, 09:30
Аватар для finlolo
Аспирант
Отправить личное сообщение для finlolo Посмотреть профиль Найти все сообщения от finlolo
 
Регистрация: 12.08.2018
Сообщений: 61

Как удалить из 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
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2018, 09:39
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,720

Попробуйте так:
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 не выполняется и программа выходит из цикла.
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2018, 09:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

finlolo,
заменить строки 3 - 8 на
list.options.length = 0;
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2018, 09:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

finlolo,
или в строке 6 заменить j на ноль
list.removeChild(list.children[0]);
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2018, 10:04
Аватар для finlolo
Аспирант
Отправить личное сообщение для finlolo Посмотреть профиль Найти все сообщения от finlolo
 
Регистрация: 12.08.2018
Сообщений: 61

Спасибо всем большое!
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить все куки домена не зная названий кук? FRIE Общие вопросы Javascript 6 31.03.2015 04:27
Как вернуть div и все вложенные в него элементы в первоначальное состояние? lucky89 Общие вопросы Javascript 17 26.02.2015 18:41
Как удалить объекты select D_Sergeevich Элементы интерфейса 3 16.09.2014 21:13
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03