突出显示日期时间的TD单元格

时间:2015-04-24 15:33:11

标签: javascript html jquery-ui

我之前提出过类似问题的问题。我有一个简单的JavaScript来突出显示TD单元格中的日期文本。我不得不将日期格式更改为" 24/04/2015 10:57 AM"并搞砸了我的剧本。我尝试将其改编为我的新日期格式,但它不起作用。我有一个td单元格,类为" SM_next_update"。

我想要完成的是在日期时间过期时突出显示一个单元格。当它的15分钟即将到期时它会突出显示橙色,当它过期时会突出显示红色。

有人知道我错过了什么吗?

$('.SM_next_update').each(function () {
    var dtSt = $(this).html().split(" ");
    var dtAr = dtSt[0].split("/");
    var when = new Date(dtAr[1] + "/" + dtAr[0] + "/" + dtAr[2] + " " + dtSt[1]);
    console.log(when);    
    var new = new Date();

    if (when.getTime() - new.getTime() < 900000 && new < when) {
        $(this).addClass('min30');
    } else {
        if (new > when) {
            $(this).addClass('min60');
        }
    }
});

3 个答案:

答案 0 :(得分:1)

您已为变量名使用了保留字。

除此之外,它有效:

$('.SM_next_update').each(function () {
    var dtSt = $(this).html().split(" ");
    var dtAr = dtSt[0].split("/");
    var when = new Date(dtAr[1] + "/" + dtAr[0] + "/" + dtAr[2] + " " + dtSt[1]);
    console.log(when);    
    var current = new Date();

    if (when.getTime() - current.getTime() < 900000 && current < when) {
        $(this).addClass('min30');
    } else {
        if (current > when) {
            $(this).addClass('min60');
        }
    }
});

您可以看到demo on JSFiddle

答案 1 :(得分:0)

您是否在运行时看到控制台出错?因为new是一个保留关键字,并且您将它用作一个可疑的名称,这可能会引发错误。如果问题仍然存在,请提供$(&#39; .SM_next_update&#39;)元素的文本值

答案 2 :(得分:0)

你应该先尝试一些事情:

  1. 将var new更改为其他内容,因为new是关键字。 var newTime(或现在,当前等)

  2. 如果您要添加新课程,则应删除上一课程。

    $(this).removeClass('min30').addClass('min60');
    
  3. 以防万一有css conficts,它会保持清洁。

    1. 更改

      else {
          if (){}
      }
      

      else if (){}
      
    2. 它只是更清洁,功能完全相同。这只是语义学。