Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2018, 08:56
Аспирант
Отправить личное сообщение для Alessio18911 Посмотреть профиль Найти все сообщения от Alessio18911
 
Регистрация: 18.06.2017
Сообщений: 87

Вставить 1 массив в 1 селект
Привет! Решаю задачу: есть 3 селекта (дни, месяцы, годы). Нужно в каждый селект вставить соответствующий ему массив. Не знаю, как написать цикл в такой ситуации, т.е. нужно, чтобы в селект #day были вставлены элементы из values.days, в #month - values.month и т.д. Пробовал сделать вложенный цикл, но он, естественно, тогда каждому из селектов передаёт значения всех элементов values... Начал писать сам цикл на 17 строке, но дальше ума не приложу, как его доделать. Пожалуйста, подскажите как.
<div class="select-wrapper">
        <select id="day" name="day"></select>            
        <select id="month" name="month"></select> 
        <select id="year" name="year"></select> 
</div>

const selects = {
     selectDay: document.querySelector('#day'),
     selectMonth: document.querySelector('#month'),
     selectYear: document.querySelector('#year'),
  },

   values = {
          days: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
          months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
          years: []
};

for (let i = 1950; i < 2150; i++) {
      values.years.push(i);
}

for (let i in selects) {
     
}

function createOptions(select, arr) {
     for (let i = 0; i < arr.length; i++) {
          const item = document.createElement('option');
	  item.text = arr[i];
	  select.appendChild(item);
     }
}
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2018, 09:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Alessio18911,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
document.addEventListener("DOMContentLoaded", function() {
    for (var b = {
            day: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
            month: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
            year: []
        }, a = 1950; 2150 > a; a++) b.year.push(a);
    Object.keys(b).forEach(function(a) {
        var c = document.getElementById(a);
        b[a].forEach(function(a, b) {
            c.options[b] = new Option(a, a)
        })
    })
});
  </script>
</head>

<body>
<div class="select-wrapper">
        <select id="day" name="day"></select>
        <select id="month" name="month"></select>
        <select id="year" name="year"></select>
</div>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление объекта в массив в цикле Dark19 Элементы интерфейса 3 11.12.2016 23:11
Чтение данных из файла в массив TheSingleElk Общие вопросы Javascript 2 16.06.2016 01:09
как разложить массив при выводе в селект imediasun1 Элементы интерфейса 11 09.03.2014 17:51
Кастомный селект, чекбокс, радио vostok Ваши сайты и скрипты 0 12.08.2013 00:33
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14