使用jquery

时间:2016-12-18 22:59:43

标签: javascript jquery html css arrays

我正在尝试为我的大学开发一个2人级的跳棋游戏,但是当我点击这个部分时,我仍然坚持获得2D数组的索引。

我将HTML代码分成了:

  • 表 - 游戏板
  • 行 - 每行是数组的高度
  • cell - 每个单元格是一块,数组的宽度

然后我设置了一个默认数组来启动游戏:

  var board = [
    [0, 1, 0, 1, 0, 1, 0, 1],
    [1, 0, 1, 0, 1, 0, 1, 0],
    [0, 1, 0, 1, 0, 1, 0, 1],
    [0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0],
    [2, 0, 2, 0, 2, 0, 2, 0],
    [0, 2, 0, 2, 0, 2, 0, 2],
    [2, 0, 2, 0, 2, 0, 2, 0],
  ];

其中:   - 0 - 空单元格   - 1 - 球员1件   - 2 - 玩家2件

获取我正在使用此代码的位置

function getPosition() {
  $('.row').on('click', function() {
    console.log( $('.row').index(this) );
  });
  $('.cell').on('click', function() {
    console.log( $('.cell').index(this) );
  });
}

获取应该在0到7之间的高度数组位置是可以的,但是行中的单元格也应该在0到7之间,但使用这个我从0到63,使用这些参数我不知道如何开始下一场比赛的比较。

以下是codepen的代码 http://codepen.io/michaelthompson/pen/jVdrav

1 个答案:

答案 0 :(得分:4)

在每个实例中,您只需使用$(this).index()即可返回元素兄弟姐妹中的索引

但是,因为单击一行总是意味着单击一个单元格,你可以将它们组合起来并执行

$('.cell').on('click', function() {
   var $cell = $(this),  
       columnIndex = $cell.index(),
       rowIndex = $cell.parent().index();
});

$('.cell').index(this)正在做的是在页面中收集整个班级的集合,这就是为什么你得到0-63