You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript井字棋选X/0回合后点击格子总显示0如何修复?

问题核心原因

你当前的代码没有存储「已选中的回合符号」的状态变量,且divCall函数中强制先后执行selectX和select0两个赋值逻辑,0的赋值永远覆盖X的结果,同时绑定在弹窗按钮上的selectX/select0函数没有接收到格子DOM参数,本身也无法完成赋值操作。

修复步骤

1. 新增全局状态变量存储当前选中的符号

在JS代码最开头添加变量:

let num1='X';
let num2='0';
let currentPlayer = ''; // 新增:存储当前要填充的符号

2. 调整selectX和select0函数的逻辑

这两个函数的作用改为设置当前玩家符号,而非直接修改格子内容:

// 选择X回合
function selectX(){
    close();
    currentPlayer = num1;
}

// 选择0回合
function select0(){
    close();
    currentPlayer = num2;
}

3. 重写divCall函数

点击格子时先判断是否已选择回合,再给空格子填充对应符号:

function divCall(divIndex){
    // 未选择回合时不响应点击
    if(!currentPlayer) return;
    let childDiv=document.getElementById("div"+divIndex);
    // 已有内容的格子不允许重复修改(符合井字棋规则,不需要可以删掉这行)
    if(childDiv.innerHTML.trim() !== '') return;
    childDiv.innerHTML = currentPlayer;
}

修改完成后即可实现你要的效果:先点击Start选择对应回合,之后点击空格子就会填充对应符号。


内容的提问来源于stack exchange,提问作者user15220138

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:09:03