var parksListJSON = {
"for": "abcde",
"srn": "12345678",
"cohort": "CS/IT/JH6",
"modules": {
"uh6com1051": {
"name": "Scripting"
},
"uh6com1063": {
"name": "UX"
},
"uh6com1099": {
"name": "Project"
}
},
"schedule": [{
"module": "uh6com1051",
"sessionType": "lab",
"duration": 1,
"allocatedTime": {
"group": "A",
"day": "mon",
"location": "E406",
"time": "11"
},
"alternativeTimes": [{
"group": "B",
"day": "tues",
"location": "E150",
"time": "11"
}]
}, {
"module": "uh6com1051",
"sessionType": "tutorial",
"duration": 1,
"allocatedTime": {
"group": "A",
"day": "weds",
"location": "C402",
"time": "9"
},
"alternativeTimes": [{
"group": "B",
"day": "thurs",
"location": "C402",
"time": "9"
}]
}, {
"module": "uh6com1051",
"sessionType": "lecture",
"duration": 1,
"day": "thurs",
"location": "B400",
"time": "15"
}, {
"module": "uh6com1063",
"sessionType": "lab",
"duration": 1,
"allocatedTime": {
"group": "A",
"day": "tues",
"location": "E407",
"time": "11"
},
"alternativeTimes": [{
"group": "B",
"day": "weds",
"location": "E150",
"time": "9"
}, {
"group": "C",
"day": "thurs",
"location": "E150",
"time": "11"
}]
}, {
"module": "uh6com1063",
"sessionType": "tutorial",
"duration": 1,
"allocatedTime": {
"group": "A",
"day": "mon",
"location": "C402",
"time": "13"
},
"alternativeTimes": [{
"group": "B",
"day": "thurs",
"location": "C400",
"time": "9"
}, {
"group": "C",
"day": "fri",
"location": "C400",
"time": "9"
}]
}, {
"module": "uh6com1063",
"sessionType": "lecture",
"duration": 1,
"day": "tues",
"location": "A166",
"time": "12"
}, {
"module": "uh6com1099",
"sessionType": "tutorial",
"duration": 1,
"allocatedTime": {
"group": "D",
"day": "weds",
"location": "LB252",
"time": "11"
},
"alternativeTimes": [{
"group": "A",
"day": "mon",
"location": "LB252",
"time": "13"
}, {
"group": "B",
"day": "mon",
"location": "LB252",
"time": "16"
}, {
"group": "C",
"day": "tues",
"location": "LB252",
"time": "11"
}, {
"group": "E",
"day": "thurs",
"location": "LB252",
"time": "11"
}]
}, {
"module": "uh6com1099",
"sessionType": "lecture",
"duration": 1,
"day": "fri",
"location": "A161",
"time": "12"
}]
}
function displaySchedule(schedule) {
var scheduleElement = document.getElementsByClassName("schedule");
for (var i = 0; i < schedule.length; ++i) {
var cellElement;
if (schedule[i].hasOwnProperty("allocatedTime")) {
var allocatedTime = schedule[i].allocatedTime;
cellElement = document.querySelector("." + allocatedTime.day + " .s" + allocatedTime.time);
cellElement.innerHTML = getModuleText(schedule[i], allocatedTime);
}
if (schedule[i].hasOwnProperty("alternativeTimes")) {
for (var j = 0; j < schedule[i].alternativeTimes.length; ++j) {
var alternativeTime = schedule[i].alternativeTimes[j];
cellElement = document.querySelector("." + alternativeTime.day + " .s" + alternativeTime.time);
if (cellElement.innerHTML.length > 0) {
cellElement.innerHTML += "<br>";
}
cellElement.innerHTML += getModuleText(schedule[i], alternativeTime);
}
}
}
}
// Helper function
function getModuleText(schedule, scheduleTime) {
var text = "<div class='module'>" +
"<span class='title'>Mod: </span>" + schedule.module + "<br>" +
"<span class='title'>Type: </span>" + schedule.sessionType + "<br>" +
"<span class='title'>Loc: </span>" + scheduleTime.location + "<br>" +
"<span class='title'>Group: </span>" + scheduleTime.group +
"</div>";
return text;
}
displaySchedule(parksListJSON.schedule);
/* Styles used from http://www.w3schools.com/css/css_table.asp . Check that link for info */
table.schedule {
border-collapse: collapse;
font-family: "Segoe UI", Arial, sans-serif;
}
.schedule th {
background-color: #4CAF50;
color: white;
}
.schedule th, .schedule td {
padding: 25px;
border-bottom: 1px solid #ddd;
}
.schedule tr:hover {
background-color: #f5f5f5
}
.schedule tr:nth-child(even) {
background-color: #f2f2f2
}
.schedule .dayRowHead, .schedule .title{
font-weight: 500;
}
.schedule .module{
border: 1px solid #ddd;
padding: 10px;
}
<!-- Changed id to class -->
<table class='schedule'>
<thead>
<!-- Row 0-->
<tr>
<th>Day</th>
<th>09:00</th>
<th>10:00</th>
<th>11:00</th>
<th>12:00</th>
<th>13:00</th>
<th>14:00</th>
<th>15:00</th>
<th>16:00</th>
<th>17:00</th>
</tr>
</thead>
<tbody>
<!-- Row 1-->
<tr class="mon">
<td class="dayRowHead">Mon</td>
<td class="s9"></td>
<td class="s10"></td>
<td class="s11"></td>
<td class="s12"></td>
<td class="s13"></td>
<td class="s14"></td>
<td class="s15"></td>
<td class="s16"></td>
<td class="s17"></td>
</tr>
<!-- Row 2-->
<tr class="tues">
<td class="dayRowHead">Tue</td>
<td class="s9"></td>
<td class="s10"></td>
<td class="s11"></td>
<td class="s12"></td>
<td class="s13"></td>
<td class="s14"></td>
<td class="s15"></td>
<td class="s16"></td>
<td class="s17"></td>
</tr>
<!-- Row 3-->
<tr class="weds">
<td class="dayRowHead">Wed</td>
<td class="s9"></td>
<td class="s10"></td>
<td class="s11"></td>
<td class="s12"></td>
<td class="s13"></td>
<td class="s14"></td>
<td class="s15"></td>
<td class="s16"></td>
<td class="s17"></td>
</tr>
<!-- Row 3-->
<tr class="thurs">
<td class="dayRowHead">Thu</td>
<td class="s9"></td>
<td class="s10"></td>
<td class="s11"></td>
<td class="s12"></td>
<td class="s13"></td>
<td class="s14"></td>
<td class="s15"></td>
<td class="s16"></td>
<td class="s17"></td>
</tr>
<!-- Row 4-->
<tr class="fri">
<td class="dayRowHead">Fri</td>
<td class="s9"></td>
<td class="s10"></td>
<td class="s11"></td>
<td class="s12"></td>
<td class="s13"></td>
<td class="s14"></td>
<td class="s15"></td>
<td class="s16"></td>
<td class="s17"></td>
</tr>
</tbody>
</table>
燦你展示JSON?或更好的工作[小提琴](https://jsfiddle.net/)? –
爲什麼不使用'switch'而不是'if'? – RaR
這裏是小提琴的鏈接[https://jsfiddle.net/KaleemShahid/u5mtq1ef/] @FlyingGambit –