当我在console.log它给它undefined但我检查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);
你的if..else if链没有检查所有条件,因为currentHour
总是有可能小于4或(而不是和)大于22。
要简单地考虑该条件,只需添加else语句,或添加其他if语句来处理其他条件
.
.
else if (currentHour< 4) {
createTxtMsg = 'helloo';
}
.
.
像评论说的那样存在逻辑错误。
我推荐你这种方法。这更易读且易于理解。
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);