我是JavaScript新手,我试图学会创建一个简单的井字游戏程序。在这个阶段,我并不担心重构,而是获得基本元素的工作。下面的代码:Javascript:使用按钮保存.innerHTML数据
window.onload = function() {
// Establish the boxes for the selector
var boxOne = document.querySelector("#b1");
// Create an event when a box is clicked
boxOne.onclick = function() {
if (boxOne.innerHTML === "X") {
boxOne.innerHTML = "O";
} else {
boxOne.innerHTML = "X";
}
}
// Check the current innerHTML of the grid for a win.
var b1 = boxOne.innerHTML,
b2 = boxTwo.innerHTML,
b3 = boxThree.innerHTML,
b4 = boxFour.innerHTML,
b5 = boxFive.innerHTML,
b6 = boxSix.innerHTML,
b7 = boxSeven.innerHTML,
b8 = boxEight.innerHTML,
b9 = boxNine.innerHTML;
var board = [
[b1, b2, b3],
[b4, b5, b6],
[b7, b8, b9]
];
endButton.onclick = function() {
console.log(board);
}
var clearButton = document.getElementById('clear');
var allBoxes = document.querySelector(".box");
clearButton.onclick = function() {
allBoxes.innerHTML = "";
}
}
球员应该能够点击一个框来选择X或O的话,我想他们点击“结束回合”,让游戏可以检查板和报告的当前状态必要时可以获胜。
但是,它似乎并没有保存玩家的输入。当我调用'.innerHTML'时,它只是返回一个空白数组。然而,如果我看一下浏览器控制台,就会发现'.innerHTML'元素中有一个X或O.所以数据在那里,但它没有被输入到数组中。我试图在不同的实现上测试它,但数组仍然是空白的。
“清除”按钮也不起作用。到目前为止我所使用的所有东西都使用我在这里作为例子来清除元素的HTML输入。
任何人都可以帮我理解我的代码有什么问题吗?谢谢。
附加信息: 您可以查看我当前所有的工作文件here on Github,其中包括HTML,CSS和JS文档。
感谢您对变量的顺序和位置的反馈!那就是诀窍。我不会认为这是问题。此外,我很欣赏重构报价,但如前所述,我并不担心重构或直接解决方案。我只需要了解我有什么以及它实际做了什么,这样我就可以尽我所能地了解自己的情况。再次感谢你。 – Proto 2014-11-23 07:13:13