2012-09-19 51 views
0

我想顯示/隱藏根據一天中的某個時間div的,就像這樣:jQuery的「否則,如果」:第一次合作,但第二個是不是

function timetheme(){ 

    $("#dawn,#day,#dusk,#night").hide(); 
    var d = new Date(); 
    var n = d.getHours(); 
    if (n > 5 && n < 8){ 
     $("#dawn").show(); 
    } 
    else if (n > 8 && n < 16){ 
     $("#day").show(); 
    } 
    else if (n > 16 && n < 20){ 
     $("#dusk").show(); 
    } 
    else { 
     $("#night").show(); 
    }; 
}; 

window.onload = timetheme; 

我已經改變我的電腦的測試它時鐘(以及一天中的任何時間),並且它工作得很好......除了「#dusk」之外。如果它在4p和8p之間,則直接進入「#night」,就好像#dusk不存在一樣。

我甚至嘗試改變其他人(例如從8a延伸到8p甚至10p)並且#day工作得很好。但是,當我嘗試插入#dusk(或其他任何其他名稱和參數時),它就好像它不在那裏一樣。

我已經搜索並通讀了這裏所有類似的問題,但他們總是有一些不同的東西,它不能解決我的特定問題。

在此先感謝!

+2

請註明您的HTML代碼段。 –

+0

我在這裏工作很好http://jsfiddle.net/j08691/2Csmu/ – j08691

回答

3

你的範圍應包括時間從邊緣:

if (n >= 5 && n < 8){ 
    $("#dawn").show(); 
} 
else if (n >= 8 && n < 16){ 
    $("#day").show(); 
} 
else if (n >= 16 && n < 20){ 
    $("#dusk").show(); 
} 
else { 
    $("#night").show(); 
}; 
+0

我幾乎有點不相信它是那麼簡單,但它現在工作。謝謝! (哇,你們快) – kehrin

相關問題