如果条件不起作用,我的井字游戏

my tic-tac-toe game if condition doesn't work

let cells = document.querySelectorAll(".cell");

let turn = "x";

cells.forEach( box => {
    box.addEventListener("click",
     () => box.classList.add("fill-" + turn));   

     if ( turn === "x" ) turn = "o";
     else turn = "x";
     
},
 { once: true}
);
#board{
  border: 2px solid red;
  width: 210px;
  height: 210px;
  margin: auto;
  
  
}

.cell{
  border: 1px solid red;
  display: block;
  background-color: rgb(241, 239, 239);
  text-decoration: none;
  width: 68px;
  height: 68px;
  float: left;
  cursor: pointer;
  font-size: 60px;
  text-align: center;
  line-height: 60px;
}

.cell:hover{
  background-color: rgb(207, 207, 207);

}

.cell.fill-x::after{
  content: "x";
  color: blue;
}

.cell.fill-o::after{
  content: "0";
  color: red;
}
<!Doctype html>
<html>
 <head>
  <title>Dooz</title>
  <meta charset="UFT-8">
  <link rel="stylesheet" href="dooz.css">
 
 </head>
 <body>
  
   <div id="board">
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
    <a  class="cell"></a>
   </div>

   <script src="dooz.js"></script>
 </body>
</html>

我正在学习 javascript 并尝试制作一款井字游戏。 我想创建一个 if 条件来决定是依次选择“x”还是“o”,但我的代码可能不起作用。 在第二个 if 语句行内: 当它 (turn = "o") 时,它只显示 "o" 当它(转===或==“o”)时,它只显示“x” 有什么问题,我该如何解决?

您正在使用箭头函数作为点击事件侦听器中的第二个参数。如果不使用大括号指定函数体,箭头函数只能 运行 一条语句。

let cells = document.querySelectorAll(".cell");

let turn = "x";

cells.forEach( box => {
    box.addEventListener("click",
     () => {
       box.classList.add("fill-" + turn));   

       if ( turn === "x" ) turn = "o";
       else turn = "x";
     });
},
 { once: true}
);