Javascript jQuery中奇怪的变量变化
我正在运行这个JS/jQuery代码,来制作一个简单的“Tic-Tac-Toe”游戏,我已经用纯Javascript做过了。我放置了一些console.log函数进行检查,当我单击任何按钮时函数启动,我意识到在循环之后,即使循环中的值是正确的(1到9),也有少数ramining函数的值是错误的。我被困在这里了,有人能帮我吗Javascript jQuery中奇怪的变量变化,javascript,jquery,Javascript,Jquery,我正在运行这个JS/jQuery代码,来制作一个简单的“Tic-Tac-Toe”游戏,我已经用纯Javascript做过了。我放置了一些console.log函数进行检查,当我单击任何按钮时函数启动,我意识到在循环之后,即使循环中的值是正确的(1到9),也有少数ramining函数的值是错误的。我被困在这里了,有人能帮我吗 var player = "O", tabo = [[1,2,3],[4,5,6],[7,8,9]], i = 0, j = 0; $('button').click(f
var player = "O", tabo = [[1,2,3],[4,5,6],[7,8,9]], i = 0, j = 0;
$('button').click(function () {
var id = this.id;
if($('#' + id).text() !== "O" && $('#' + id).text() !== "X") {
if (player === "O") {
$('#' + id).text("O");
player = "X";
}else{
$('#' + id).text("X");
player = "O";
}
}else{
alert("Case déjà prise !");
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
tabo[i,j] = $("#case" + (j + 1 + (3 * i))).text();
console.log(tabo[i,j]);
}
}
console.log(tabo[0,0]);
console.log(tabo[1,0]);
console.log(tabo[2,1]);
console.log(tabo[1,1]);
console.log(tabo[2,0]);
console.log((tabo[0,0] === tabo[1,0]) +"1");
console.log((tabo[0,0] === tabo[2,0]) +"2");
console.log((tabo[1,1] === tabo[0,1]) +"3");
console.log((tabo[1,1] === tabo[2,1]) +"4");
if (((tabo[1,1] === tabo [0,0]) && (tabo[1,1] === tabo[2,2]))||
((tabo[1,1] === tabo [0,2]) && (tabo[1,1] === tabo[2,0]))||
((tabo[0,0] === tabo [0,1]) && (tabo[0,0] === tabo[0,2]))||
((tabo[0,0] === tabo [1,0]) && (tabo[0,0] === tabo[2,0]))||
((tabo[2,2] === tabo [2,0]) && (tabo[2,2] === tabo[2,1]))||
((tabo[2,2] === tabo [0,2]) && (tabo[1,1] === tabo[1,2]))||
((tabo[1,1] === tabo [1,0]) && (tabo[1,1] === tabo[1,2]))||
((tabo[1,1] === tabo [0,1]) && (tabo[1,1] === tabo[2,1]))) {
alert(player + " a gagné !!!");
//location.reload(true);
}
});
基于逗号运算符,接下来的指令具有相同的结果
tabo[0,0] == tabo[0] // true
tabo[1,0] == tabo[0] // true
tabo[2,0] == tabo[0] // true
逗号运算符计算其每个操作数(从左到右)
右)并返回最后一个操作数的值
我想您应该检查一下
tabo[I][j]
为什么要加载jQuery三次,包括一次缺少“
?”我意识到,在循环之后,即使循环中的值是正确的(从1到9),也有几个Ramining的值是错误的。“要具体。什么是错误的值,什么是正确的值,你在哪里看到它们,等等。还有:不需要在黑暗中用控制台蹒跚而行。log
手电筒;使用浏览器中内置的功能齐全的调试器打开指示灯。@Xufox至少每次都是相同的版本。。。(或者至少有两个)我只加载了两次,第三次是我的JS文件名。当我把它放在这里时,缺少的“.”是一个输入错误。例如,当我单击第一个按钮时,循环的值是O 2 3 4 5 6 7 8 9,然后,第一个变为7,4变为7,5变为8(五个第一控制台放77887)。如果我单击按钮8,5和8变为OIt实际工作,谢谢。tabo[I][j]当我尝试使用它时,语法返回了erros,但现在它工作得很好(至少是脚本的这一部分)。
body{
background-color: aqua;
}
button{
height: 50px;
width: 50px;
}
tabo[0,0] == tabo[0] // true
tabo[1,0] == tabo[0] // true
tabo[2,0] == tabo[0] // true