将类添加到单击的按钮 if 语句

时间:2021-02-09 01:59:17

标签: javascript if-statement

我正在尝试制作 Hangaman 游戏,因此如果用户单击正确的字母“不绘制”类,如果他输入错误的字母,则会添加另一个类,但如果条件永远不会变为假,则似乎是这样

else if(theClickedLetter !== wordGeuss){

    e.target.classList.add('draw');
   
}

代码如下:

document.addEventListener('click', function(e) {
  let theClickedLetter = e.target.textContent;

  arrayGuess.forEach((wordGeuss, index) => {

    if (theClickedLetter === wordGeuss) {
      e.target.classList.add('dont-draw');

      let n = Array.from(lettersGess.children);
      n[index].textContent = theClickedLetter;
    } 
    else if (theClickedLetter !== wordGeuss) {
      e.target.classList.add('draw');
    }
  })
})

1 个答案:

答案 0 :(得分:0)

所以首先认为你可以做的来测试正在发生的事情是你在最后添加一个 else 并查看逻辑在哪里结束。由于您没有提供完整的 HTML,我无法在测试端做太多事情,所以我只能建议您如何测试和可能的修复。这是带有其他代码的代码:

document.addEventListener('click', function(e) {
  let theClickedLetter = e.target.textContent;

  arrayGuess.forEach((wordGeuss, index) => {

    if (theClickedLetter === wordGeuss) {
      e.target.classList.add('dont-draw');

      let n = Array.from(lettersGess.children);
      n[index].textContent = theClickedLetter;
    } 
    else if (theClickedLetter !== wordGeuss) {
      e.target.classList.add('draw');
    }
    else {
      console.log('ending up in else')
    }
  })
})

然后你就可以看到出了什么问题。可能的问题和修复是

  • 从事件中获取文本的方式(尝试使用其他方法,如 e.target.innerText)
  • 尝试在 if else 块之前打印两个变量,看看出了什么问题(看看值是否真正匹配并相应地进行调试)
  • 只需在最后使用 else 来放置代码 e.target.classList.add('draw');,这可能是一个可能的解决方案
相关问题