首页 > 解决方案 > jQuery脚本在到达日期后添加类

问题描述

我有一个包含多个项目的列表。每个项目都有一个日期。如果当前日期等于或大于元素的日期,我现在正在寻找一个向元素添加类的 jQuery 脚本。

例子:

<ul>
    <li class="entry" data-date="2018-09-25">
        Some content here
    </li>
    <li class="entry" data-date="2018-09-27">
        Some content here
    </li>
    <li class="entry" data-date="2018-10-05">
        Some content here
    </li>
</ul>

所以让我们假装它是 9 月 27 日,那么它应该是这样的:

<ul>
    <li class="entry additional-class" data-date="2018-09-25">
        Some content here
    </li>
    <li class="entry additional-class" data-date="2018-09-27">
        Some content here
    </li>
    <li class="entry" data-date="2018-10-05">
        Some content here
    </li>
</ul>

我用这段代码试了一下:

    $(function() {
  var date = new Date(),
    currentDate = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
  $(".entry").each(function() {
    var specifiedDate = $(this).data('date');
    if (specifiedDate >= currentDate) {
      $(this).addClass('past');
    }
  });
});

非常感谢!

标签: jqueryclassdate

解决方案


循环遍历元素并使用 if 语句比较日期,然后将类添加到符合您要求的类中。

let todayDate = new Date();
$("li").each(function(){
   let liDate = new Date($(this).attr("data-date"));
   if(liDate < todayDate){
       $(this).addClass("additional-class");
   }
});

这可能会奏效。


推荐阅读