我的网页上有一个日历,如果任务中的日期与当前日期匹配,此脚本将添加一个类。如果我当天确实有任何任务,那么这项工作就可以了。但如果我不这样做,它会给我一个当前脚本和我网页上的所有其他脚本的错误,使网页变得无用。所以问题是,如果 if 语句不返回任何内容,如何使该脚本忽略并且不执行任何操作?
var d = new Date(2019, 1, 24);
var month = d.getMonth() + 1; //.getMonth() is 0-11
var day = d.getDate();
if (day < 10) {
day = '0' + dd;
}
if (month < 10) {
month = '0' + month;
}
var mydivs = document.getElementsByClassName("mydiv");
for(var i = 0; i < mydivs.length; i++) {
if (mydivs[i].children[0].innerHTML == `${day}.${month}`) {
mydivs[i].className += " today";
}
}
.today {
border: 2px solid red;
color: red;
}
<div class="mydiv">
<span class="date-display-single day" property="dc:date" datatype="xsd:dateTime" content="2019-02-24T11:30:00+01:00">24.02</span>
</div>
<div class="mydiv">
<span class="date-display-single day" property="dc:date" datatype="xsd:dateTime" content="2019-02-25T11:30:00+01:00">25.02</span>
</div>
最佳答案
您只需要在尝试访问 [0]
子级之前检查子级的长度,否则会出现索引越界错误。
var d = new Date(2019, 1, 24);
var month = d.getMonth() + 1; //.getMonth() is 0-11
var day = d.getDate();
if (day < 10) {
day = '0' + dd;
}
if (month < 10) {
month = '0' + month;
}
var mydivs = document.getElementsByClassName("mydiv");
for(var i = 0; i < mydivs.length; i++) {
if (mydivs[i].children.length && mydivs[i].children[0].innerHTML == `${day}.${month}`) {
mydivs[i].className += " today";
}
}
.today {
border: 2px solid red;
color: red;
}
<div class="mydiv">
</div>
<div class="mydiv">
<span class="date-display-single day" property="dc:date" datatype="xsd:dateTime" content="2019-02-24T11:30:00+01:00">24.02</span>
</div>
<div class="mydiv">
<span class="date-display-single day" property="dc:date" datatype="xsd:dateTime" content="2019-02-25T11:30:00+01:00">25.02</span>
</div>
关于javascript - 在 Javascript 中,如果 if 语句不返回任何内容,则不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54935905/