繁体   English   中英

根据日期显示/隐藏 div

[英]Show/Hide divs based on 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>

chrome 中的控制台正在抛出:

Unexpected token {

所以 if else 语句似乎存在语法错误,但对我来说看起来没问题:(

任何人都可以发现我错过了什么吗?

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

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

更新 1

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

更新 2

你也有我认为是逻辑错误的地方。 如果你想让条件(current.getTime() > expiry2.getTime())被激活,它不能作为第一个条件(current.getTime()>expiry.getTime())else出现。 else if更改为if ,它应该可以工作,尽管为了进一步优化代码,您可以将第二个if包含在第一个if中(考虑到expiry总是小于expiry2

你忘记了if after else

else if (current.getTime() > expiry2.getTime()) {

我对脚本做了一些操作,这样您就可以添加类,并且该项目将在您决定的时间消失。 如果内容已过期,它将显示或隐藏。 如果需要,您可以添加更多变量和 else if 语句。

我仍在学习 JS 和 jQuery,所以请记住这一点,但一切似乎都按照我想要的方式工作,并且我在控制台中没有任何错误。

https://jsfiddle.net/medel/qhgrtwzm/2/

HTML

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

启用 jQuery 的 JS 1.8.3

window.setInterval(function() {

  var current = new Date();
  var expiry = new Date("January 19, 2016 17:39:00")

  if (current.getTime() > expiry.getTime()) {
    $('.houdini').hide();

  } else if (current.getTime() < expiry.getTime()) {
    $('.houdini').show();
  }

}, 0);

雅各布乔治的回答非常好。 发布这个以防它对任何人有帮助。 为了与 Internet Explorer 兼容,我不得不修改日期/时间格式,我还重新排序了逻辑,因此它像瀑布一样触发,只显示一个基于到期时间的 div,如果当前时间早于expiry值。

Java脚本:

window.setInterval(function() {

  var current = new Date();
  var expiry = new Date('2015-12-03T02:00:00.000-08:00')
  var expiry2 = new Date('2015-12-04T02:00:00.000-08:00')
  var expiry3 = new Date('2015-12-05T02:00:00.000-08:00')

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

}, 3000);

您忘记了if语句中的 if 。 您的if-else块应该如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM