【发布时间】:2013-02-22 21:36:30
【问题描述】:
我正在尝试使用 jQuery 制作简单的数字游戏。我使用 html 表格构建了一个 7x7 网格。我创建了一些 jQuery 函数来允许用户突出显示和取消突出显示表格中的单元格。我想让它使用户选择的第一个单元格必须位于最左侧的列中,然后选择的每个后续单元格必须与突出显示的单元格相邻,直到它们将单元格一直连接到右侧桌子。这些单元格中会有数字,并且会有一些我尚未确定的游戏功能。
通过一个简单的布尔值和一些 if 逻辑,我确定第一个单元格必须来自左列,但现在 我无法确保每个后续单元格都与突出显示的单元格相邻。我为表中的每个 td 分配了一个编号 id,从 1 到 49(7 行,每行 7)。当用户选择一个单元格时,我会在一个名为 cellCoord 的数组中捕获该单元格的 id。我希望这样的事情可能会起作用:
var thisCell = parseInt($(this).attr('id'));
if (thisCell == (cellCoord[i]+1) || thisCell == (cellCoord[i]-1) ||
thisCell == (cellCoord[i]+7) || thisCell == (cellCoord[i]-7))
不幸的是,它没有。有什么建议吗?
可以在here 找到我的工作的早期草稿。
【问题讨论】:
-
ids 在 5 之前的所有 html 版本中可能不会以数字开头。您可以考虑使用data-属性。虽然我知道这并不能回答这个问题。想我应该指出来。 -
好吧,我给它们编号了(
等),然后解析然后使用 parseInt($(this).attr('id')) .这不符合我的想法吗? -
与手头的问题有关。
i是先前选择的单元格的编号吗?而且,如果这些已经是整数,那么数组有什么用?除了边缘情况外,这似乎应该可以工作,这段代码的结果是什么? -
它有效,它只是无效的 html。不过,浏览器往往会尽可能宽松,因此它实际上可能不会在现代浏览器中造成问题。
-
i来自for(i = 0; i < cellCoord.length; i++),它位于我帖子中的代码之前。照原样,代码有些工作,但在某些情况下,我似乎无法选择我认为应该的单元格,取消选择也是如此。
标签: jquery html-table