2015-04-24 57 views
1

我之前曾問過類似問題的問題。我有一個簡單的JavaScript來突出顯示TD單元格中的日期文本。我不得不將日期格式更改爲「2015/4/15 10:57」,並搞砸了我的腳本。我試着將它適應到我的新日期格式,但它不起作用。我有一個類爲「SM_next_update」的td單元格。突出顯示日期時間的TD單元

我想完成的是當日期時間過期時突出顯示一個單元格。它將在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'); 
     } 
    } 
}); 
+1

您應該將new更改爲newTime,因爲new是關鍵字。 還有什麼做console.log(當)和console.log(新)輸出? – WakeskaterX

回答

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

+0

好,非常感謝你,史蒂夫,那就是訣竅! –

0

您是否看到控制檯在運行時出現錯誤?因爲new是一個保留關鍵字,並且您將它用作一個nariable名稱,可能會引發錯誤。此外,如果問題仍然存在,請提供一個$(「SM_next_update。」)元素

+0

原始問題中有一個文本的例子。 – Fenton

0

夫婦的事情,你應該首先嚐試的文本值:

  1. 變化變種新別的東西作爲新的關鍵字。 var newTime(或現在,當前等)

  2. 如果你還要添加一個新類,你應該刪除上一個類。

    $(this).removeClass('min30').addClass('min60'); 
    

萬一有CSS conficts,它保持它的清潔。

  • 變化

    else { 
        if(){} 
    } 
    

    else if(){} 
    
  • 這只是大量清潔劑,和功能完全相同。這只是語義。

    相關問題