Stu*_*ent 1 javascript jquery if-statement switch-statement
它在if/else语句中运行良好,但是一旦使用switch语句,默认消息只显示,即使我的本地时间小于24(12am).一如既往地感谢您的帮助.
var today = new Date();
var timeNow = today.getHours()
var greeting = $("#greeting");
switch (timeNow) {
case timeNow > 17 : greeting = "Good Evening </br> Welcome To My Website";
break;
case timeNow > 12 : greeting = "Good Afternoon </br> Welcome To My Website";
break;
case timeNow > 6 : greeting = "Good Morning </br> Welcome To My Website";
break;
default: greeting = "Welcome... but isn't it bed time now?";
}
$('#greeting').html('<h1>' + greeting + '<h1>');Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="greeting">Welcome!</h1>Run Code Online (Sandbox Code Playgroud)
你的switch声明是试图的值进行比较,timeNow对结果的timeNow > 17和这样,这将是一个布尔值(true或false).当然,没有任何的匹配,因为没有Date实例===要么true或false.
你原来if/else if/else可能是正确的方法.
但是,您可以switch在JavaScript中使用它(与许多其他语言不同),因为case值可以是表达式,并且它们以源代码顺序进行评估,只使用第一个匹配的值(除了default,如果使用的话,总是使用最后一个没有其他人匹配).所以如果你改变了
switch (timeNow) {
Run Code Online (Sandbox Code Playgroud)
至
switch (true) {
Run Code Online (Sandbox Code Playgroud)
...然后将true其与结果进行比较timeNow > 17:
var today = new Date();
var timeNow = today.getHours()
var greeting = $("#greeting");
switch (true) { // <=== Change is here
case timeNow > 17 : greeting = "Good Evening </br> Welcome To My Website";
break;
case timeNow > 12 : greeting = "Good Afternoon </br> Welcome To My Website";
break;
case timeNow > 6 : greeting = "Good Morning </br> Welcome To My Website";
break;
default: greeting = "Welcome... but isn't it bed time now?";
}
$('#greeting').html('<h1>' + greeting + '<h1>');Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="greeting">Welcome!</h1>Run Code Online (Sandbox Code Playgroud)
此外,虽然:你原来if/else if/else可能是走正道.
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |