很抱歉,如果这是一个基本问题,但我不能让两个“行动”在其他单一的情况下工作。
我希望它能说出不同的问候,同时根据当前时间改变身体的背景颜色。
代码无需此行:
document.getElementById("####").style.background = '#######';
这是不起作用的代码:
var today = new Date();
var hourNow = today.getHours();
var greeting;
if (hourNow > 20) {
greeting = 'Boa noite!'; document.getElementById("body").style.background = '#000000';
} else if (hourNow > 12) {
greeting = 'Boa tarde!';
document.getElementById("body").style.background = '#ffffff';
} else if (hourNow > 0) {
greeting = 'Bom descanço!'; document.getElementById("body").style.background = '#121212';
} else if (hourNow > 7) {
greeting = 'Bom dia!'; document.getElementById("body").style.background = '#bf3d3d';
}
document.write(greeting);
我感谢我能得到的每一个帮助!谢谢你提前!!
答案 0 :(得分:1)
您可以使用所需参数的对象来更改并使用所需顺序中的键数组,并使用回调来更改给定值。
var greetings = {
20: {
greeting: 'Boa noite!',
background: '#000000'
},
12: {
greeting: 'Boa tarde!',
background: '#ffffff'
},
7: {
greeting: 'Bom dia!',
background:'#bf3d3d'
},
0: {
greeting: 'Bom descanço!',
background: '#121212'
}
},
hourNow = (new Date).getHours();
[20, 12, 7, 0].some(function (hour) {
if (hourNow >= hour) { // check for greater and equal
document.getElementById("greeting").innerHTML = greetings[hour].greeting;
document.body.style.background = greetings[hour].background;
return true; // exit loop
}
});
<div id="greeting" style="background-color: #ffffff;"></div>
答案 1 :(得分:0)
您应该在您的身体上添加<h1>
标记,然后在其上设置内心文字以用于问候语。
<!-- HTML -->
<h1 id="greeting"></h1>
// JS
var greeting = document.getElementById('greeting');
if (hourNow > 20) {
greeting.innerText = 'Boa noite!';
document.body.style.backgroundColor = '#000000';
}
答案 2 :(得分:0)
你应该把
else if (hourNow > 7)
前
else if (hourNow > 0)
现在是最后一个如果无法到达
答案 3 :(得分:-1)
如果您未在break
中提供case
,则可以使用switch statement并利用直通行为。