我很困惑为什么会这样。基本上,我正在尝试制作一个单词/短语猜谜游戏,如果正确的按钮字母与短语中的字母匹配,它就会发现该字母。我需要将匹配(正确)的字母存储在变量中并返回该字母。如果猜到的字母不正确,我需要该函数返回 null。
function checkLetter(clickedLetter) {
let letterFound = ""
if (clickedLetter.tagName == "BUTTON"){
clickedLetter.className = "chosen";
clickedLetter.setAttribute("disabled", "true");
const li = document.querySelectorAll("li.letter")
for (let i = 0 ; i < li.length ; i++){
if (clickedLetter.textContent.toLowerCase() == li[i].textContent.toLowerCase()){
li[i].classList = "show";
letterFound = li[i]
//without this return statement, it runs fine
return letterFound
} else {
//without this return statement, it runs fine
return null
}
}
}
}
qwerty.addEventListener("click", (e) => {
const clickedLetter = e.target;
checkLetter(clickedLetter);
});
https://jsfiddle.net/y4q7ot68/1/ 这是一个 jfiddle 演示,其中返回语句被注释掉,工作正常。如果您取消注释 return 语句,它会变得很古怪,并且不会发现任何字母和/或所有字母。我究竟做错了什么?