【发布时间】:2016-10-07 23:36:13
【问题描述】:
我需要能够通过一个随机的 3 x 3 矩阵并检查数字是否按顺序排列(即顶行是 1-3,中间是 4-6,底部是 7-9)。到目前为止,我在 JS 中编写了这个函数:
function winningorder(topleft, topcenter, topright, centerleft, centercenter, centerright, bottomleft, bottomcenter, bottomright){
if(document.getElementById(topleft).innerHTML = 1 && document.getElementById(topcenter).innerHTML = 2 && document.getElementById(topright).innerHTML = 3 && document.getElementById(centerleft).innerHTML = 4 && document.getElementById(centercenter).innerHTML = 5 && document.getElementById(centerright).innerHTML = 6 &&document.getElementById(bottomleft).innerHTML = 7 && document.getElementById(bottomcenter).innerHTML = 8 && document.getElementById(bottomright).innerHTML = 9){
setTimeout(function(){ alert("Well Done!"); }, 250);
}
我不知道是否需要将所有位置(每个单元格的 HTML id)作为参数,所以这是我的第一个问题。其次,我会将我的函数放在 HTML 代码中的什么位置。代码是:
<table border=1>
<tr class="numberrow">
<td id="topleft" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)" ></td>
<td id="topcenter" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
<td id="topright" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
</tr>
<tr class="numberrow">
<td id="centerleft" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
<td id="centercenter" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
<td id="centerright" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
</tr>
<tr class="numberrow">
<td id="bottomleft" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
<td id="bottomcenter" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
<td id="bottomright" class="numbertile" onclick="processclick(this.id)" onchange=="winningorder(id)"></td>
</tr>
我的第一个方法是使用 onchange 事件并运行该函数,但这不起作用。感谢您的帮助!
【问题讨论】:
-
将
document.getElementById(tileId)放入一个全局变量中,并在else块中使用它。 -
因为单击的单元格似乎已经是全局的,而不是将 innerHTML 存储在 clickedcell 中,而是存储元素(为简单起见,您的 if 将是
if(!clickedcell)) - 其余的应该自己编写 -
但是如果我想改变单元格的内部(单元格中的数字),我不需要将那个数字存储在某个地方吗?或者我该如何准确地编写该代码,我仍然卡住了
-
我遇到的全新问题,解决了我的旧问题,感谢@JaromandaX 的任何帮助
-
@Barmar 你也是
标签: javascript arrays function matrix swap