Javascript 显示错误和页面重新加载问题

Javascript display error and page reload problems

所以我这次的项目是创建一个 tic tac toe 对抗 AI 的游戏,它将跟踪玩家、计算机和抽签赢得的游戏数量。我的问题是,当计算机或玩家获胜或出现平局时,它不会添加到 win/lose/draw,而是每次显示 [object HTMLElement] 后跟 1。

此外,当我只想清空棋盘时,开始新游戏会重新加载页面。这也重置了我不想要的 wins/loss/draw 的数量。

https://jsfiddle.net/e0z632pz/

winCheck = function () {
if ((a1 == a2 && a1 == a3 && (a1 == "x")) ||
(b1 == b2 && b1 == b3 && (b1 == "x")) ||
(c1 == c2 && c1 == c3 && (c1 == "x")) ||
(a1 == b1 && a1 == c1 && (a1 == "x")) ||
(a2 == b2 && a2 == c2 && (a2 == "x")) ||
(a3 == b3 && a3 == c3 && (a3 == "x")) ||
(a1 == b2 && a1 == c3 && (a1 == "x")) ||
(a3 == b2 && a3 == c1 && (a3 == "x"))
) {
    xWin = true;
    winAlert();
    {
    playerWin = playerWin + 1;
    xWin = true;
    document.getElementById("playerWin").innerHTML = playerWin;
            }

我认为这尤其是问题所在。只修复一个就完美了,因为我可以弄清楚其余的。

(注意:我有这个用于 drag/drop,但我无法让它在 jsfiddle 上工作所以我将它更改为可点击的游戏,因为这不是我的问题,所以忽略图像框。)

(注2:我知道这可能很简单,但我已经醒了很久..哈哈)

谢谢!

你在哪里设置playerWin

我怀疑您这样做 var playerWin = document.getElementById("playerWin"); 将变量设置为 HTMLElement。

您有一个 location.reload 可以重新加载新游戏的页面。而且 playerWin 似乎没有在任何地方定义,也没有初始值。也许声明它并将其设置为 0 开始?

更新:

要将所有图像移回拖动框,您需要执行以下操作

$('.ximage').each(function(){
    $('.dragbox').append($(this));
});

您必须向图像添加 ximage class。现在他们把它作为 id。 Id 通常应该是唯一的。