css 通过JavaScript将类添加到HTML元素中存在问题[关闭]

cdmah0mi  于 2023-04-13  发布在  Java
关注(0)|答案(1)|浏览(131)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
我在井字游戏中通过JavaScript将类添加到HTML元素中时遇到了问题。

const cellElements = document.querySelectorAll("[data-cell]");

let isCircleTurn;

const handleClick = (e) => {
  //Put mark(X or Circle)
  const cell = e.target;
  const currentClass = circleTurn ? "circle" : "x";
  cell.classList.add(currentClass);
};

cellElements.forEach((cell) => {
  cell.addEventListener("click", handleClick, {
    once: true
  });
});
<div class="table circle">
  <div class="cell x" data-cell></div>
  <div class="cell circle" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
</div>your text

我正在创建一个井字游戏,我想通过类添加X和O,然而,我的JavaScript代码没有更改类。我已经通过ChatGPT寻找代码的更正,但它无法解决这个问题。

roejwanj

roejwanj1#

  • 已定义但未使用:let isCircleTurn;
  • 这是没有定义的,但使用circleTurn,因此由于undefined的强制转换,总是导致“false”,所以我将其更改为isCircleTurn
  • 添加了一行代码,将isCircleTurn的值设置为与实际值相反的值。

我添加了最小的一点CSS只是为了让一些东西可以点击。因为这是一个学习练习,我把剩下的留给你,但是作为一个提示,这可以只用几个小的CSS部分来完成。

const cellElements = document.querySelectorAll("[data-cell]");

let isCircleTurn;

const handleClick = (e) => {
  //Put mark(X or Circle)
  const cell = e.target;
  const currentClass = isCircleTurn ? "circle" : "x";
  isCircleTurn = !isCircleTurn;
  cell.classList.add(currentClass);
  console.log(currentClass);
};

cellElements.forEach((cell) => {
  cell.addEventListener("click", handleClick, {
    once: true
  });
});
.cell {
  border: 1px solid black;
  height: 1rem;
  width: 1rem;
}
<div class="table circle">
  <div class="cell x" data-cell></div>
  <div class="cell circle" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
  <div class="cell" data-cell></div>
</div>your text

相关问题