Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вставить 1 массив в 1 селект (https://javascript.ru/forum/events/75092-vstavit-1-massiv-v-1-selekt.html)

Alessio18911 02.09.2018 08:56

Вставить 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);
     }
}

рони 02.09.2018 09:17

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>


Часовой пояс GMT +3, время: 05:22.