根据日期显示/隐藏div

h0r*_*hay 5 javascript jquery date

我正在尝试根据日期显示隐藏div并正在尝试以下代码:

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>

window.setInterval(function(){

  var current = new Date();
  var expiry  = new Date("October 29, 2012 12:00:00")
  var expiry2 = new Date("October 30, 2012 12:00:00")

  if(current.getTime()>expiry.getTime()){
    $('#one').hide();
    $('#two').show();
  }

  else(current.getTime()>expiry2.getTime()){
       $('#two').hide();
       $('#three').show();
   }

}, 3000);

$('#one').show(); 
</script>

<div id="one" style="display:none">
<p>content for div #one</p>
</div>

<div id="two" style="display:none">
<p>content for div #two</p>
</div>

<div id="three" style="display:none">
<p>content for div three</p>
</div>
Run Code Online (Sandbox Code Playgroud)

Chrome中的控制台正在抛出:

Unexpected token {
Run Code Online (Sandbox Code Playgroud)

所以似乎if else语句有语法错误,但它对我来说没问题:(

任何人都可以找到我所缺少的东西吗?

Jac*_*rge 6

如果需要,您可以检查工作jsfiddle

问题是你需要一个else ifatelse (current.getTime() > expiry2.getTime()) {

更新1

关闭每个div </div>.小提琴也更新了

更新2

你也有我认为的逻辑错误.如果你想要(current.getTime() > expiry2.getTime())激活条件,它就不能成为else第一个条件(current.getTime()>expiry.getTime()).更改else ifif,它应该工作,虽然为了进一步优化代码,你可以将第二个if包含在第一个内if(考虑到expiry总是小于expiry2)


Vis*_*ioN 5

你忘记了if之后else

else if (current.getTime() > expiry2.getTime()) {
Run Code Online (Sandbox Code Playgroud)