Добрый день, пришлось начать писать простенький тайм пикер. Подскажите что желательно исправить. Только начал, внешний вид формируется так: Код (Javascript): (function() { var dateTimePicker = document.getElementById('dateTimePicker'), body1 = '', optionMinute = '', optionHour = '', optionDay = '', optionMonth = '', optionYear = '', now = new Date(), year = "" + now.getFullYear(), month = "" + (now.getMonth() + 1), day = "" + now.getDate(), hour = "" + now.getHours(), minute = "" + now.getMinutes(); var name = ['Минуты', 'Часы', 'Дата', 'Месяц', 'Год']; for (var i = 0; i < 60; i++) { if(i !== 0 && i <= 12){ optionMonth += '<option value="'+i+'">'+i+'</option>'; } if(i <= 23){ optionHour += '<option value="'+i+'">'+i+'</option>'; } if(i !== 0 && i <= 31){ optionDay += '<option value="'+i+'">'+i+'</option>'; } optionMinute += '<option value="'+i+'">'+i+'</option>'; } for (var i = 2019; i <= 2050; i++) { year += '<option value="'+i+'">'+i+'</option>'; } var optionTime = [optionMinute, optionHour, optionDay, optionMonth, optionYear], nowTime = [minute, hour, day, month, year]; var head = '<div class="container">' +'<div class="row">' +'<div class="col-2 nopadding">' +'<br><div>Начало неполадки</div><br><div>Окончание неполадки</div>' +'</div>'; var footer = '</div></div>'; for (var i = 0; i < 5; i++) { body1 += '<div class="col-2 nopadding">' +'<div>'+name[i]+'</div><br><div>' +'<select class=" selectAdjustStopFault-center" id="selectData'+i+'">' +'<option value="'+i+'">'+ nowTime[i] +'</option>' + optionTime[i] + '</select></div></div>'; } dateTimePicker.innerHTML = head + body1 + footer; })(); Мне чем проще тем лучше, пойдет что ли, или говнокод?
Дата и часы дублируются, если нужно отметить их уже при рендере то есть атрибут для option selected. Зачем вообще брать кол-во часов в сутках и зачем брать кол-во месяцев если они неизменны? HTML не так много, но я бы лучше использовал .createElement. Вот пример накидал: http://jsfiddle.net/ut0y9dfj/1/