javascript - 在 Javascript 中,如果 if 语句不返回任何内容,则不执行任何操作

标签 javascript if-statement

我的网页上有一个日历,如果任务中的日期与当前日期匹配,此脚本将添加一个类。如果我当天确实有任何任务,那么这项工作就可以了。但如果我不这样做,它会给我一个当前脚本和我网页上的所有其他脚本的错误,使网页变得无用。所以问题是,如果 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/

相关文章:

javascript - Rails 收集 JSON 数据并将其渲染到 Highcharts 图表中

c++ - 斐波那契和 'if constexpr'

java - 我应该使用 for 循环还是 If 条件

python - 为什么本应为 28 的结果却是 30?

php - 如何在 PHP 中抓取需要 cookie 和 javascript 的页面

javascript - 为什么我们使用缩小版的 Angularjs(即使我们添加了 angular.min.js.map,也要优先使用 angular.min.js 而不是 angular.js)

javascript - 如果用户未登录,则重定向到登录 - Ionic

javascript - 你可以添加一个 BarTintColor 到 React Native Router

关于比较的 R switch 语句

C++ If语句错误: expected ';' before '{' token