2010-05-07 118 views
0

这里是更新后的代码我想要星期五的div,不要在星期五出现。我也希望它不会在下午5点以后出现,但我无法通过日常问题。感谢您的帮助。JQuery根据天隐藏div

<html> 
<head> 

<script type="text/javascript"> 

    $(document).ready(function() { 
    var rightNow = new Date(); 
    var day = rightNow.getUTCDay(); 
    if (day == 5) { 
     $('#friday').hide(); 
    } 
    }); 
</script> 

<style type="text/css"> 

div { 
border:solid black 1px; 
background-color:lightblue; 
color:darkblue; 
font-size:14pt; 
font-family:arial; 
width:550px; 
height:220px; 
overflow:auto; 
padding:5px; 
} 
</style> 


</head> 
<body> 



<div id='friday'> 
friday 
</div> 
<br> 
<div id='saturday'> 
saturday 
</div> 
<br> 
<div id='sunday'> 
sunday 
</div> 
<br> 



</body> 
</html> 
+1

问题是什么? – 2010-05-07 17:12:13

回答

3

assigning,而不是comparing

if (day = 5;) { 

应该是:

if (day === 5) { 

如果你不熟悉=== ..这是一样的,除了它==严格(不执行类型强制)。

你可以阅读更多关于比较运算符here

编辑:

此外,一定要阅读John's answer,因为它看起来像正在助长你的问题也是如此。

+0

我认为(日= 5)应该足够了。 – Hellnar 2010-05-07 17:14:10

+0

@Hellnar - 在这个特定的情况下,是的。但'=='是JavaScript糟糕的部分之一。 '==='更具可预测性,默认情况下使用它是个好习惯。 – Matt 2010-05-07 17:15:26

7

很可能,您遇到了脚本在元素属于DOM之前执行的问题。所以,包装你的脚本是这样的:

<script type="text/javascript"> 

    $(document).ready(function() { 
    var rightNow = new Date(); 
    var day = rightNow.getUTCDay(); 
    if (day == 5) { 
     $('#friday').hide(); 
    } 
    }); 
</script> 

请注意,我也修正了“日= 5;”误条件。

+0

+1看起来他在DOM准备好之前正在运行他的脚本。 – Matt 2010-05-07 17:16:34

+0

我仍然错过了一些东西。我无法找到它。 – Ryan 2010-05-07 17:17:53

+0

你钉了它,该div还没有,太不好的延迟是不是全部支持 – curtisk 2010-05-07 17:19:11

1

我建议John Fishers回答。

,你可以做的就可以了扩大的唯一的事情是把一天一个开关,假设你要隐藏的每个项目根据一天,而不仅仅是隐藏在周五,如果是5

<script type="text/javascript"> 

    $(document).ready(function() { 
    var rightNow = new Date(); 
    var day = rightNow.getUTCDay(); 
    switch(day) 
    { 
     case 0: 
     //whatever you want to do on 0 
     break; 
     case 1: 
     //whatever you want to do on 1 
     break; 
     case 2: 
     //whatever you want to do on 2 
     break; 
     case 3: 
     //whatever you want to do on 3 
     break; 
     case 4: 
     //whatever you want to do on 4 
     break; 
     case 5: 
     $('#friday').hide(); 
     break; 
     case 6: 
     //whatever you want to do on 6 
     break; 
    }); 
</script> 
0

你刚才发布的最新代码的唯一问题是你删除了你的jQuery include(正如John Fisher指出的那样)。放行

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

回来,它会工作,你想它。
要处理的问题,下午5点后,你可以这样做:

$(document).ready(function() { 
    var rightNow = new Date(); 
    var day = rightNow.getUTCDay(); 
    if (day == 5 || rightNow.getHours() > 17) { 
     $('#friday').hide(); 
    } 
}); 

Here的javascript日期对象的一个​​很好的参考。

+0

谢谢你的作品完美。 – Ryan 2010-05-07 18:19:45