为什么我的Javascript代码不能正常工作

Why is my Javascript code not working correctly?

本文关键字:工作 常工作 我的 Javascript 代码 不能 为什么      更新时间:2024-05-25

我最近开始使用Javascript,就像几个小时前一样,我不明白为什么它仍然显示不应该出现在我的网站上的文本。Dreamweaver说没有错误,但必须有。

<script type="text/javascript">
     var day = new Date();
     var hr = day.getHours();
     if((hr == 1) || (hr == 2) || (hr == 3) || (hr == 4) || (hr == 5) || (hr == 6) || (hr == 7) || (hr == 8) || (hr == 9)); {
         document.write("Paragraph one stack example");
     }
    if(hr == 10) {
        document.write("P2 stack ex");
    }
    if((hr == 11) || (hr == 12) || (hr == 13)); {
        document.write("P3 stack ex.");
    }
</script>

代码是有效的,但在放入时出错

在if表达式的末尾

如果你去掉这个,一切都会好起来的!

var day = new Date();
var hr = day.getHours();
if((hr == 1) || (hr == 2) || (hr == 3) || (hr == 4) || (hr == 5) || (hr == 6) || (hr == 7) || (hr == 8) || (hr == 9)) {
  document.write("Paragraph one stack example");
}
if(hr == 10) {
  document.write("P2 stack ex");
}
if((hr == 11) || (hr == 12) || (hr == 13)) {
  document.write("P3 stack ex.");
}

从您的代码中,稍微重新格式化:

if((hr == 1) || ... || (hr == 9)); {
    document.write("Paragraph one stack example");
}

去掉那个分号,它会使整个if变得不相关。

翻译过来就是:

if((hr == 1) || ... || (hr == 9))
    ;
{
    document.write("Paragraph one stack example");
}

换句话说,

  • 如果hr为1-9,则不执行任何操作
  • 不管hr的值如何,输出"段落一堆栈示例"

您对11/12/13if语句也有同样的问题。


顺便说一句,"一到九"if语句的更好的解决方案是:

if((hr >= 1) && (hr <= 9)) {
    document.write("Paragraph one stack example");
}

并且您可以进一步清理代码,因为所有条件都是互斥的:

<script type="text/javascript">
    var day = new Date();
    var hr = day.getHours();
    if ((hr >= 1) || (hr <= 9)) {
        document.write("Paragraph one stack example");
    } else if (hr == 10) {
        document.write("P2 stack ex");
    } else if ((hr >= 11) && (hr <= 13)) {
        document.write("P3 stack ex.");
    }
</script>

例如,如果你已经确定hr等于10,那么检查它是否等于4就没有什么意义了。因此,您可以使用else if