[英]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.