Вы можете дать себе функцию для построения текста, принимая параметры для различных частей:
function addContent(target, cls1, cls2, i) {
target += '<tr class="' + cls1 + '">';
target += '<td class="td'+cls2 + '">' + i + '</td>';
target += '<td> <input type="time" class="form-control" name="waktu_1[]"> </td>';
target += '<td> <input type="time" class="form-control" name="waktu_2[]"> </td>';
target += '<td> <select class="form-control jenis_mapel" name="jenis_mapel[]" id="jenisMapel'+cls2 + '"><option value="pelajaran">pelajaran</option><option value="istirahat">istirahat</option><option value="upacara">upacara</option></select> </td>';
target += '</tr>';
return target;
}
(нет необходимости в +=
, кстати, см. Ниже ... )
Тогда:
for (var i = 1; i <= count; i++) {
switch(hari) {
case 'senin':
senin = addContent(senin, arr[i], hari + i, i);
break;
case 'selasa':
selasa = addContent(selasa, arr[i], hari + i, i);
break;
case 'rabu':
rabu = addContent(rabu, arr[i], hari + i, i);
break;
}
}
Если вы обнаружите, что часто используете switch
для адресации таких переменных, как это часто, рассмотрите возможность помещения переменных в объект как свойства:
var theObject = {
senin: ...,
salasa: ...,
rabu: ...
};
Затем вы можете обратиться к ним следующим образом: theObject[hari]
:
theObject[hari] = addContent(theObject[hari], arr[i], hari + i, i);
Нет необходимости в серии +=
обновления одной и той же переменной, вы можете просто используйте +
:
function addContent(target, cls1, cls2, i) {
return target
+ '<tr class="' + cls1 + '">'
+ '<td class="td'+cls2 + '">' + i + '</td>'
+ '<td> <input type="time" class="form-control" name="waktu_1[]"> </td>'
+ '<td> <input type="time" class="form-control" name="waktu_2[]"> </td>'
+ '<td> <select class="form-control jenis_mapel" name="jenis_mapel[]" id="jenisMapel'+cls2 + '"><option value="pelajaran">pelajaran</option><option value="istirahat">istirahat</option><option value="upacara">upacara</option></select> </td>'
+ '</tr>';
}