Javascript if语句在html页面上无法正常工作

时间:2011-03-11 17:20:33

标签: javascript if-statement

我几天前写了一个脚本,它会根据一天中的时间切换我的页面的css样式表。它似乎工作正常,直到我意识到它经过一次脚本后,它就会停止。

例如。当我第一次实现脚本时,它将使用一天的样式表,然后在晚上使用另一个样式表,然后在日落期间使用第三个样式表,最后在晚上使用一次。它会第一次这样做。但是在第4次切换之后,除非我重新实现脚本,否则它不会再次切换。它只停留在切换到脚本底部的样式表上因为我是javascript的新手我不知道为什么要这样做。

我使用相同的javascript函数来控制图片和其他东西,它们似乎完美无缺。这是代码。

<!--CSS Stylesheet Switch Code--->

<script type="text/JavaScript">
<!--
function getStylesheet() {
      var currentTime = new Date().getHours();
      if (7 <= currentTime && currentTime < 17) {
       document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/vice.css' type='text/css'>");
      }
      if (17 <= currentTime && currentTime < 19) {
       document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/evening.css' type='text/css'>");
      }
      if (19 <= currentTime && currentTime < 21) {
       document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/dusk.css' type='text/css'>");
      }
      else  {
       document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/nighttime.css' type='text/css'>");
      }
}

getStylesheet();
-->
</script>

2 个答案:

答案 0 :(得分:6)

即使前两个语句中的一个是正确的,最后两个语句中的一个将始终执行。将你的ifs更改为else ifs,或使用开关。

答案 1 :(得分:4)

你应该使用Javascript If..Else If..If语句如下: -

if (7 <= currentTime&&currentTime < 17) {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/vice.css' type='text/css'>");
  }
  else if (17 <= currentTime&&currentTime < 19) {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/evening.css' type='text/css'>");
  }
  else if (19 <= currentTime&&currentTime < 21) {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/dusk.css' type='text/css'>");
  }
  else  {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/nighttime.css' type='text/css'>");
  }