我之前提出过类似问题的问题。我有一个简单的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');
}
}
});
答案 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)
你应该先尝试一些事情:
将var new更改为其他内容,因为new是关键字。 var newTime(或现在,当前等)
如果您要添加新课程,则应删除上一课程。
$(this).removeClass('min30').addClass('min60');
以防万一有css conficts,它会保持清洁。
更改
else {
if (){}
}
到
else if (){}
它只是更清洁,功能完全相同。这只是语义学。