关注完整代码:http://codepen.io/anon/pen/JWRabY
以下是我遇到问题的部分:
var dataID = 1;
$('svg rect.grid').each(function() {
$(this).attr('data-id', dataID);
dataID++
});
这为从1开始创建的每个'svg rect.grid'(即一个正方形)动态创建一个属性'data-id'。代码生成9个Square。
我想更改dataID以使用
等数组 4, 9, 2, 3, 5, 7, 8, 1, 6
而不是按顺序编号每个方格1-9。
我希望这是有道理的。
答案 0 :(得分:2)
只需使用一个数组并移动以依次获取每个元素:
var ids = [4, 9, 2, 3, 5, 7, 8, 1, 6];
$('svg rect.grid').each(function() {
$(this).attr('data-id', ids.shift());
});
请注意,这会改变数组,因此如果您需要多次运行此进程,请确保不要将数组永久存储在某个位置,并且每次都重新初始化它。 (例如,将此代码放在函数内部并调用它将起作用。)