我不明白为什么我不能让代码在这段代码中输入else块:
var d = new Date();
var n = d.getHours();
if(n >= 6 || n <= 21) {
$('body').html('<div id="bg"><img src="bg_day.jpg" alt=""></div>');
} else {
$('body').html('<div id="bg"><img src="bg_night.jpg" alt=""></div>');
}
有人可以帮帮我吗?
答案 0 :(得分:6)
f(n >= 6 || n <= 21){
应该是
f(n >= 6 && n <= 21){
22大于6因此它将评估为真
答案 1 :(得分:4)
重新思考你的逻辑。每个数字都是> = 6或&lt; = 21所以它始终是真的。我认为(&&
)就是你要找的东西。
答案 2 :(得分:4)
您的条件n >= 6 || n <= 21
对所有数字都适用。 ||
是逻辑OR运算符,对于布尔值,如果左侧的条件或右侧的条件为真,则它将返回true 1 。任何不大于或等于6的数字都将小于或等于21.
我认为您打算使用&&
:
if(n >= 6 && n <= 21){
...
}
进一步阅读
1。由于短路和类型转换,它实际上比这更复杂,但请参阅上面的链接了解更多详情。
答案 3 :(得分:0)
||表示OR:数字总是大于6或小于21,因此永远不会达到您的其他分支。你需要的是&amp;&amp;
答案 4 :(得分:0)
只需添加&amp;&amp;并删除||
<script>
var d = new Date();
var n = d.getHours();
if(n >= 6 && n <= 21){
$('body').html('<div id="bg"><img src="bg_day.jpg" alt=""></div>');
}
else{
$('body').html('<div id="bg"><img src="bg_night.jpg" alt=""></div>');
}
</script>