一般简单周表仅在星期日发生错误

Error occuring only on Sunday for general simple weektable

我正在处理突出显示星期几的一般 table。 除了星期天,今天,它在所有日子都有效。它现在坏了,它 returns 出现以下错误:

显然代码一点也不健壮?应该有一种完全不同的写法吗? PS。 if 语句是为了防止代码触发所有不包含此类作品的页面table.

https://jsfiddle.net/mxopg6fz/

workday();

function workday(){
    if (document.getElementById("weekdagtabel") !== null){
        var d = new Date().getDay();
        document.getElementById("day-"+d).classList.add("today");
    }
}
.today {
  font-weight: bold;
}

.open {
  background-color: green; 
}

.closed {
  background-color: red; 
}



table {
    border-collapse: collapse;
    width: 100%;
    border-spacing: 0;
    margin: .5em 0;
}

th, td {
    padding: 1em;
    text-align: left;
    border-bottom: 1px solid #ddd;
    border-color:black;
    border-style:solid;
    border-width:1px;
    overflow:hidden;
    word-break:normal;
}

tr:hover {background-color: #EEE}
<table>
    <tbody id="weekdagtabel">
        <tr id="day-1">
            <td>Monday</td>
            <td>08:00 - 20:00</td>
        </tr>
        <tr id="day-2">
            <td>Tuesday</td>
            <td>08:00 - 20:00</td>
        </tr>
        <tr id="day-3">
            <td>Wednesday</td>
            <td>08:00 - 20:00</td>
        </tr>
        <tr id="day-4">
            <td>Thursday</td>
            <td>08:00 - 20:00</td>
        </tr>
        <tr id="day-5">
            <td>Friday</td>
            <td>08:00 - 20:00</td>
        </tr>
        <tr id="day-6">
            <td>Saturday</td>
            <td>Closed</td>
        </tr>
        <tr id="day-7">
            <td>Sunday</td>
            <td>Closed</td>
        </tr>
    </tbody>
</table>

检查这行代码:

var d = new Date().getDay();

d 变量 gets values060 表示星期日,1 表示星期一,等等)

但是您的 html 中有从 17 的 ID (day-1 ... day-7)

周日,您的代码正在此处查找 ID day-0

document.getElementById("day-"+d)

但它不在您的 html 中,您有 day-7 而不是

星期日使用 day-0 id 而不是 day-7,或者调整代码中的 d 变量,以反映 html 文件中的现有 ID。