jquery“else if”:第一次工作但第二次不工作

时间:2012-09-19 21:01:34

标签: jquery if-statement

我试图根据时间显示/隐藏某些div,如下所示:

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不存在一样。

我甚至尝试改变其他人(例如将#day从8a延伸到8p甚至10p)并且#day工作得很好。但是当我尝试插入#dusk(或任何其他的,如果使用不同的名称和参数),它就好像它不存在一样。

我在这里搜索并阅读了所有类似的问题,但他们总是有一些不同的东西,它没有解决我的特定问题。

提前致谢!

1 个答案:

答案 0 :(得分: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();
};