根据时间显示消息 - 代码不起作用

时间:2014-12-07 20:41:37

标签: javascript

我刚开始学习JavaScript。 我试图使用if语句根据时间和switch语句显示相应的消息,以显示消息旁边的图片,但代码不起作用:

    <!DOCTYPE html>
<head>
    <title> Time of the day </title>
    <meta charset="utf-8">
    <script>
        function writeIt() {
            var date = new Date();
            var hour = date.getHours();
            var timeOfDay;
            if (hour >= 7 && hour <12) {
                document.write("Good morning");
                timeOfDay = "morning";
            }
            else if (hour >= 12 && < 18) {
                document.write("Good afternoon");
                timeOfDay = "noon";
            }
            else {
                document.write("Good night!");
                timeOfDay = "night";    
            }

            switch (timeOfDay) {
                case "morning";
                case "day":
                    document.write("<img src='/images/morning.jpg/' />")
                    break;
                case "afternoon":
                    document.write("<img src='/images/afternoon.jpg/' />")
                    break;
                default:
                    document.write("<img src='/images/night.jpg" />")
                    break;
            } 
        }
    </script>
</head>
<body onload="writeIt()">
    hello
</body>
</html>

到目前为止,我发现如果我删除“else if ...”,if语句就可以了......你有什么线索可能有什么不对吗?

由于

2 个答案:

答案 0 :(得分:1)

您必须将每个if - else表达式视为独立表达式。这意味着口译员不会理解这一行:

else if (hour >= 12 && < 18) {

它会将其视为&#34;名为 hour 的变量大于或等于12且变量名为 um ...等待什么?小于18&#34 ;。您是必需的将两个表达式视为单独或不同的语句。所以正确的代码是

else if (hour >= 12 && hour < 18) {

这意味着&#34;名为 hour 的变量大于或等于12,名为 hour 的变量小于18&#34;

答案 1 :(得分:0)

else if (hour >= 12 && < 18) {更改为else if (hour >= 12 && hour < 18) {