根据日期将类添加到元素

时间:2019-08-26 19:50:32

标签: javascript jquery wordpress events

我有一个看起来像这样的span元素。
html

<span class="tribe-event-date-start">September 5 @ 7:00 pm</span>

我想按日期指定该元素,并向其父容器添加一个类。

如果当前日期与元素中的日期匹配,则该类旨在突出显示容器。请注意,我只能在此处获取月和日,因此仅需匹配。我根本不是JS或JQuery专家,但是了解基础知识,我知道我可以利用两者之一来产生最终结果。

这是WordPress插件“事件日历”小部件的输出,用于显示即将发生的事件。

如果元素日期与实际日期匹配,则最终结果应该是添加到父div中的类。

1 个答案:

答案 0 :(得分:0)

如果您可以相信输出将始终看起来像您可以执行以下操作:

var _dateToCheck = $(".tribe-event-date-start").text();
_dateToCheck = _dateToCheck.substring(0,_dateToCheck.indexOf("@"));
_dateToCheck.trim();

var _current = new Date();
console.log(_dateToCheck.getMonth(), _dateToCheck.getDate(), _current .getMonth(), _current.getDate());

因此您可以对月份进行比较检查,然后对日期进行检查。

如果实际上确实需要将“ tribe-event-date-start”类应用于元素,那么您将在日期比较逻辑之后执行此操作……但是您仍然需要进行某些操作,因此如果您没有开始的类或ID,那么您将不得不使用实际的元素,但是我仍然会尝试缩小列表的范围,例如:

var _allTheRows = $("#my-calendar-plugin-thing span");
_allTheRows.each(checkDate); 

function checkDate(el){
    var _dateToCheck = $(el).text();
    _dateToCheck = _dateToCheck.substring(0,_dateToCheck.indexOf("@"));
    _dateToCheck.trim();

    var _current = new Date();
    console.log(_dateToCheck.getMonth(), _dateToCheck.getDate(), _current 
    .getMonth(), _current.getDate());

   //... check if date is greater or smaller or the same, or whatever your logic is

    if(meetsMyCondition){$(el).parent().addClass("tribe-event-date-star")}

}