【发布时间】:2018-12-14 01:41:02
【问题描述】:
现在我正在使用 javascript 开发时间线程序。当我点击每个班级时,它应该被着色为带有 2 个块的时间线,因为每个班级都是 2 小时的班级。
每个时间表都有 id(例如,星期一第一堂课有 ="mon1",星期五第二堂课有 'fri2'
这是我的代码。它运作良好。但我想知道如何减少代码。
let timelineColor = getRamdomColor();
let clickDay;
let clickDay1;
for (i = 0; i < dayArray.length; i++) {
if (dayArray[i] === 'monday') {
clickDay = 'mon' + timeArray[i];
let table = document.getElementById(clickDay);
table.style.backgroundColor = timelineColor;
clickDay1 = 'mon' + (Number(timeArray[i]) + 1);
console.log(clickDay1);
let table1 = document.getElementById(clickDay1);
table1.style.backgroundColor = timelineColor;
} else if (dayArray[i] === 'tuesday') {
clickDay = 'tue' + timeArray[i];
let table = document.getElementById(clickDay);
table.style.backgroundColor = timelineColor;
clickDay1 = 'tue' + (Number(timeArray[i]) + 1);
let table1 = document.getElementById(clickDay1);
table1.style.backgroundColor = timelineColor;
} else if (dayArray[i] === 'wednesday') {
clickDay = 'wed' + timeArray[i];
let table = document.getElementById(clickDay);
table.style.backgroundColor = timelineColor;
clickDay1 = 'wed' + (Number(timeArray[i]) + 1);
let table1 = document.getElementById(clickDay1);
table1.style.backgroundColor = timelineColor;
} else if (dayArray[i] === 'thursday') {
clickDay = 'tur' + timeArray[i];
let table = document.getElementById(clickDay);
table.style.backgroundColor = timelineColor;
clickDay1 = 'tur' + (Number(timeArray[i]) + 1);
let table1 = document.getElementById(clickDay1);
table1.style.backgroundColor = timelineColor;
} else if (dayArray[i] === 'friday') {
clickDay = 'fri' + timeArray[i];
let table = document.getElementById(clickDay);
table.style.backgroundColor = timelineColor;
clickDay1 = 'fri' + (Number(timeArray[i]) + 1);
let table1 = document.getElementById(clickDay1);
table1.style.backgroundColor = timelineColor;
}
}
【问题讨论】:
-
你能提供你的html吗?这将使我对大局有更好的了解。一定的改进是从
if块切换到switch语句。虽然您可以将两个表放在一个数组中const tables = [document.getElementById('fri' + timeArray[i]), document.getElementById('fri' + (Number(timeArray[i]) + 1))];然后更改颜色tables[0].style.backgroundColor = timelineColor; tables[1].style.backgroundColor = timelineColor;
标签: javascript loops iterator