javascript - 获取网格中元素的位置除以 4

标签 javascript jquery math

我有一个网格,假设有 12 张卡片、4 列和 3 行。 每个列都有不同的类。 第 1 列:具有 A 类。 第 2 列:具有 b 类,依此类推 c 和 d。

如果我循环遍历所有具有 a 类的卡片,我可以知道它们的行位置,因为每个卡片都有一个索引。

我的问题是,当有人点击卡片时,假设 b 列第 2 行,我们如何获取索引,我知道它在第 2 列中,因为它的类为 b,但我如何知道它是哪一行?

我需要的是一个数学函数,我可以传入 7(如果第 7 张卡被按下),它将返回 2(因为它在第二行),而对于 10,它将返回 3。

我使用了 12 张卡片作为示例,但这个数学函数应该返回任意数量的卡片。

最佳答案

在您的事件处理程序中,获取卡片的索引idx,然后调用如下内容:

var rows = 3, cols = 4;
function getCoords(idx,rows,cols) {
    var rowval = Math.floor(idx/rows),
        colval = idx % cols; // modulo
    return [rowval,colval]; // ordered array
};

不要忘记 idx 从零开始计数,而不是从一开始,因此第 7 张牌应该有 idx=6

关于javascript - 获取网格中元素的位置除以 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27020791/

相关文章:

javascript - JavaScript从HTML block 元素中删除了双括号(带有内部文本)

jquery - 基于 JQuery 验证更改 CSS 类

javascript - 如果它们相距很远,则将点数组分成多个点数组

javascript - 为什么在 javascript 中对数字使用逻辑运算符会出现以下结果

javascript - 如何使用 Google App Engine 作为后端在 Chrome 扩展中实现用户身份验证?

php - 解析 JSON 数组并提取选择列表 ID 和值的值

javascript - 首次加载时仅加载一次广告 (div)

javascript - 在 JavaScript 或 jQuery 中,当 div 的内容发生变化时是否会触发一个事件?

r - 为什么 R 轮函数不轮大数

c - C语言中梯形法则的二重积分