如果某个字段被另一个值警报占用

时间:2016-12-20 11:21:02

标签: javascript jquery html

我正在制作一个小Tic Tac Toe游戏,我想在用户尝试点击已经有值的单元格时提醒用户。这是我到目前为止所拥有的。



    var turn = "O";
     //player 1 = turn  = O
     //player2 = turn  = X
    var cell = $('#cell');

    function go(cellID) {
      //alert(turn);
      var boxId = "#" + cellID;
      if (cell = null) {
        if (turn == 'O') {
          $(boxId).html("O");
          turn = 'X';
        } else {
          if (turn == 'X') {
            $(boxId).html("X");
            turn = 'O';
          }
        }
      } else {
        alert('Pick another box')
      }

      //alert(cellID);
      $('h2:last').html('Turn: ' + turn);
      return turn;
    }

.cell {
  height: 20px;
  width: 10px;
  background-color: blue;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="gameTable">
  <table style="width: 100%;">
    <tr>
      <td onclick="go('C0')" id="C0" class="cell"></td>
      <td onclick="go('C1')" id="C1" class="cell"></td>
      <td onclick="go('C2')" id="C2" class="cell"></td>
    </tr>
    <tr>
      <td onclick="go('C3')" id="C3" class="cell"></td>
      <td onclick="go('C4')" id="C4" class="cell"></td>
      <td onclick="go('C5')" id="C5" class="cell"></td>
    </tr>
    <tr>
      <td onclick="go('C6')" id="C6" class="cell"></td>
      <td onclick="go('C7')" id="C7" class="cell"></td>
      <td onclick="go('C8')" id="C8" class="cell"></td>
    </tr>
  </table>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

我想我理解你的问题。您在第9行的检查不太正确。您可以使用返回元素内容的.html()来查看元素的值是否为空,如果元素为空,则返回空字符串。

if (cell = null) {将成为if ($(boxId).html() === '') {

See the updated fiddle here

答案 1 :(得分:-1)

正如其他人所说,onclick不正确,应为td

另一个要点是,您不应该在.on('click')元素中使用.class事件。相反,您应该使用jquery的unexpected element (uri:identity.rest.mgmt.acs.nm.cisco.com", local:"user"). Expected elements are (none) 事件。

查看此JSFiddle