第一次单击时元素更改,但第二次单击时不会还原

时间:2017-07-31 15:36:13

标签: javascript html

第一次点击显示" X",然后它变为" O"。但它并没有变成" X"再次

我想在javascript中制作一个tic tac toe游戏。

第一次点击显示" X"然后第二次点击显示" O"正如我打算那样。然而,仅在随后的点击中" O"显示,即它不会改回" X"。



    function startGame(){                             
        //To display whose turn it is
        document.turn="X";
        setMessage(document.turn + " gets to start");
    }
    
    function setMessage(msg){                          
       //gets the message div and puts value = msg
       document.getElementById("message").innerText= msg;
    }
    
    function nextMove(square){                        
        square.innerText= document.turn;
        switchTurn();
    }
    
    function switchTurn(){
        if(document.turn="X"){
            document.turn="O";
        }else{
            document.turn="X";
        }
    }

  <body onload="startGame();">                       
        <div id="message">Messages will go here</div>
        <table border=0>
            <td>
                <table border=1>
            	    <tr>
            		    <td class="box" onclick="nextMove(this);"></a></td>
            			<td class="box" onclick="nextMove(this);"></a></td>
            		    <td class="box" onclick="nextMove(this);"></a></td>
            	    </tr>
            		<tr>
            		    <td class="box" onclick="nextMove(this);"></a></td>
            			<td class="box" onclick="nextMove(this);"></a></td>
            			<td class="box" onclick="nextMove(this);"></a></td>
            		</tr>
            		<tr>
            		    <td class="box" onclick="nextMove(this);"></a></td>
            			<td class="box" onclick="nextMove(this);"></a></td>
            			<td class="box" onclick="nextMove(this);"></a></td>
            		</tr>
            	</table>
            </td>
            <td>
                <table>
            	    <tr>
                        <td><input type=text size=5 id="player1" value=0></td>
                        <td>Player1</td>
                    </tr>
            		<tr>
                        <td><input type=text size=5 id="player2" value=0></td>
                        <td>Player2</td>
                    </tr>
            		<tr>
                        <td><input type=text size=5 id="ties"  value=0></td>
                        <td>Ties</td>
                    </tr>
            	</table>
            </td> 
        </table>
    </body>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:4)

您要在条件中进行分配。

function switchTurn(){
  if(document.turn="X"){
    document.turn="O";
  } else {
    document.turn="X";
  }
}

当你的代码到达if()时,它正在制作document.turn“X”并返回一个真值,然后立即转身并使其成为“O”。

你会想要使用===:

function switchTurn(){
  if(document.turn==="X"){
    document.turn="O";
  } else {
    document.turn="X";
  }
}