javascript - 为 html 元素赋值并读取它

标签 javascript html css algorithm dom-events

我正在尝试制作井字游戏,仅基于 html、CSS 和纯 js。我已经有了游戏基础(有一个错误),但是一旦有人赢了我就无法检测到。我决定使用 MagicSquare算法,但我不知道如何为每个 td 元素附加值。 Here你可以找到,我此刻所拥有的。我正在尝试制作类似 player += Number(target.value); 的内容,一旦其中一名玩家收集到 15 个,我就会停止游戏并显示消息。当然,这现在行不通了,所以你能告诉我一些好主意吗?一旦播放器生成点击事件,如何用 td 元素赋值,然后通过 js 读取它?

index.html

<table class="gameArea" onclick="myFunction(event)">
     <tbody>
         <tr>
             <td value=4></td>
             <td value="9"></td>
             <td value="2"></td>
         </tr>
         <tr>
             <td value="3"></td>
             <td value="5"></td>
             <td value="7"></td>
         </tr>
         <tr>
             <td value="8"></td>
             <td value="1"></td>
             <td value="6"></td>
         </tr>
     </tbody>
</table>

script.js

  var player1 = 0,
      player2 = 0,
      round = 0;

function myFunction(event) {
    var target = event.target;
    //target.className += "x";

    if(hasClass(target, "x") || hasClass(target, "y") ){
      alert("Taken");
      return;
    }

    if(round === 1){
      target.className += "x";
      player1 += Number(target.value);
      round = 0;
      console.log(target.value);
    } else {
      target.className += "y";
      round = 1;
      player2 += Number(target.value);
      console.log("Player 2: " + player2);
    }

    console.log(round);
  }

  function hasClass( elem, klass ) {
   return (" " + elem.className + " " ).indexOf( " "+klass+" " ) > -1;
}

最佳答案

更改您的 HTML 以使用数据属性,如下所示:

<td data-value="3"></td>

然后您可以读取该值,如下所示:

player1 += parseInt(target.dataset.value, 10);

有关 MDN 的更多信息 here .

关于javascript - 为 html 元素赋值并读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40717814/

相关文章:

javascript - 无法在 Recompse 中使用 Props

css - 将 Div 中的文本粘在窗口底部

javascript - 用于多列列表的 JQuery slideToggle

html - 使用 CSS 重新排列表格数据

html - CSS block 属性会影响 HTML 的良构性吗?

javascript - 我正在尝试通过 Angular 发送电子邮件。我是否以正确的方式处理这个问题?

javascript - 为什么 Text 元素上的 SVG bbox 方法在不同的浏览器中给出不同的结果?

javascript - 如何创建一个knockout.js 可观察值数组?

javascript - 使用 smoothdivscroll 修复多行负载

html - 替换或修改滚动条,使其在 MacOS 上始终可见