当我console.log它给出未定义,但我检查了10次芽找不到erorr!
let getBody = document.body;
let newElement = document.createElement("h1");
let date = new Date();
let currentHour = date.getHours();
let createTxtMsg;
if (currentHour >= 4 && currentHour < 10) {
createTxtMsg = "Good Morning!";
} else if (currentHour >= 10 && currentHour < 12) {
createTxtMsg = "Good Day!";
} else if (currentHour >= 12 && currentHour < 18) {
createTxtMsg = "Good Afternoon";
} else if (currentHour >= 18 && currentHour < 22) {
createTxtMsg = "Good evening";
} else if (currentHour >= 22 && currentHour < 4) {
createTxtMsg = "Good night";
}
console.log(createTxtMsg)
let createEleTxt = document.createTextNode(createTxtMsg);
newElement.appendChild(createEleTxt);
getBody.appendChild(newElement);
答案 0 :(得分:0)
您的if..else if链不会检查所有条件,因为currentHour
总是小于4或(而不是and)大于22。
要简单地考虑该条件,只需添加else语句,或添加其他else if语句即可处理其他条件
.
.
else if (currentHour< 4) {
createTxtMsg = 'helloo';
}
.
.
答案 1 :(得分:0)
有逻辑错误,如评论说。
我建议您使用这种方法。这更具可读性和易于理解。
if (22 <= currentHour) {
createTxtMsg = "Good night";
} else if (18 <= currentHour) {
createTxtMsg = "Good evening";
} else if (12 <= currentHour) {
createTxtMsg = "Good Afternoon";
} else if (10 <= currentHour) {
createTxtMsg = "Good Day!";
} else if (4 <= currentHour) {
createTxtMsg = "Good Morning!";
} else {
createTxtMsg = "Good night";
}
完整代码段:
let getBody = document.body;
let newElement = document.createElement("h1");
let date = new Date();
let currentHour = date.getHours();
let createTxtMsg;
if (22 <= currentHour) {
createTxtMsg = "Good night";
} else if (18 <= currentHour) {
createTxtMsg = "Good evening";
} else if (12 <= currentHour) {
createTxtMsg = "Good Afternoon";
} else if (10 <= currentHour) {
createTxtMsg = "Good Day!";
} else if (4 <= currentHour) {
createTxtMsg = "Good Morning!";
} else {
createTxtMsg = "Good night";
}
console.log(createTxtMsg)
let createEleTxt = document.createTextNode(createTxtMsg);
newElement.appendChild(createEleTxt);
getBody.appendChild(newElement);