【问题标题】:Get index on click with jquery使用jquery获取点击索引
【发布时间】:2016-12-18 22:59:43
【问题描述】:

我正在尝试为我的大学开发一个 2 人跳棋游戏,但是当我点击棋子时,我无法获得二维数组的索引。

我将我的 HTML 代码分为:

  • 桌子 - 游戏板
  • row - 每行是数组的高度
  • 单元格 - 每个单元格都是一块和数组的宽度

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

  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

【问题讨论】:

  • 改成console.log( $('.cell', this.parentElement).index(this) );获取当前行内的索引
  • $('.cell').index(this) % 8

标签: javascript jquery html css arrays


【解决方案1】:

在每个实例中,您都可以简单地使用$(this).index(),它将返回元素兄弟姐妹中的索引

但是由于点击一行总是意味着点击一个单元格,你可以将它们组合起来

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

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

【讨论】:

  • 这个答案对您有帮助吗?如果是这样,请随时接受它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 2017-02-23
相关资源
最近更新 更多