我正在尝试根据日期显示隐藏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语句有语法错误,但对我来说看起来还不错:(
任何人都可以找到我所缺少的东西吗?
答案 0 :(得分:5)
如果需要,您可以查看工作jsfiddle
问题是您需要else if
else (current.getTime() > expiry2.getTime()) {
更新1
使用</div>
关闭每个div。 Fiddle也已更新
更新2
你也有我认为的逻辑错误。如果您希望激活条件(current.getTime() > expiry2.getTime())
,则它不能作为第一个条件else
的{{1}}。将(current.getTime()>expiry.getTime())
更改为else if
,它应该可以使用,但为了进一步优化代码,您可以将第二个if
括在第一个if
内(考虑到{{1} }}总是小于if
)
答案 1 :(得分:4)
您在if
之后忘了else
:
else if (current.getTime() > expiry2.getTime()) {
答案 2 :(得分:1)
我稍微操纵了脚本,以便您可以添加该类,并且该项目将在您决定时消失。如果内容已过期,它将显示或隐藏。如果需要,您可以添加更多变量和if语句。
我还在学习JS和jQuery,所以请记住这一点,但一切似乎都按照我想要的方式工作,而且我在控制台中没有错误。
https://jsfiddle.net/medel/qhgrtwzm/2/
<强> HTML 强>
<div class="houdini" style="display:none">
<p>content for div #one</p>
</div>
JS启用了jQuery 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);
答案 3 :(得分:0)
Jacob George的回答很棒!发布这个以防万一它可以帮助任何人。我不得不修改UTC / GMT与Internet Explorer兼容的日期/时间格式。我还重新排序逻辑,因此它像瀑布一样触发,只根据到期时间显示一个div,或者如果当前时间在expiry
值之前则没有显示div。
<强>使用Javascript:强>
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);
答案 4 :(得分:0)
您忘记了else语句中的“ if
”。您的if-else
块应如下所示:
if (current.getTime() > expiry.getTime()) {
$('#one').hide();
$('#two').show();
} else if (current.getTime() > expiry2.getTime()) {
$('#two').hide();
$('#three').show();
}