通过JS获取日期并添加课程?

时间:2018-03-21 14:42:27

标签: javascript

我想检测当前日期,然后在课程中添加活动,以突出显示当天。

var date = new Date();
    var day = date.getDay();
    if ( day == 'Montag' ){
        $(".monday").addClass("active");
    }
    if ( day == 'Dienstag' ){
        $(".tuesday").addClass("active");
    }
    if ( day == 'Mittwoch' ){
        $(".wednesday").addClass("active");
    }
    if ( day == 'Donnerstag' ){
        $(".thursday").addClass("active");
    }
    if ( day == 'Freitag' ){
        $(".friday").addClass("active");
    }
    if ( day == 'Samstag' ){
        $(".saturday").addClass("active");
    }

我知道,转换会更好。 THX

3 个答案:

答案 0 :(得分:1)

你可以做类似的事情来获得更易读的代码。

var daysOfWeeks = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
var date = new Date();
$('.' + daysOfWeek[date.getDay()]).addClass("active");

请记住,getDay()返回0到6之间的整数(0表示星期日)。

答案 1 :(得分:1)

getDay()会返回0到6之间的数字。Reference

为了使您的代码更好,您可以将类名存储在数组中,并通过getDay()给出的索引访问它,并直接在您的选择器中使用它:

var days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
var date = new Date();
var day = date.getDay();
$("." + days[day]).addClass("active");
span {
  color: blue;
}

.active {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="monday">Montag</span>
<span class="tuesday">Dienstag</span>
<span class="wednesday">Mittwoch</span>
<span class="thursday">Donnerstag</span>
<span class="friday">Freitag</span>
<span class="saturday">Samstag</span>
<span class="sunday">Sonntag</span>

答案 2 :(得分:0)

if ( day == 1 ){
    $(".monday").addClass("active");
}
...

switch (day) {
  case 1:
    $(".monday").addClass("active");
    break;
  ...
}

var dayClasses = ["sunday", "monday", ...];
$("." + dayClasses[day]).addClass("active");