jQuery的“否则,如果”:第一次合作,但第二个是不是

jQuery的“否则,如果”:第一次合作,但第二个是不是

问题描述:

我想显示/隐藏根据一天中的某个时间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

你的范围应包括时间从边缘:

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