2017-03-06 48 views
0

按照此为全码:http://codepen.io/anon/pen/JWRabY如何从数组中编辑变量而不是增量?

在这里是具有麻烦部Im:

var dataID = 1; 
$('svg rect.grid').each(function() { 
$(this).attr('data-id', dataID); 
dataID++ 
}); 

此动态创建的属性“数据ID”的每个“SVG rect.grid”(即。一个正方形)从1开始创建。代码生成9个正方形。

我想改变数据ID使用数组如

4, 9, 2, 3, 5, 7, 8, 1, 6 

相反顺序的编号每个正方形1-9。

我希望这是有道理的。

回答

2

只需使用一个数组,并转移到获取依次对每个元素:

var ids = [4, 9, 2, 3, 5, 7, 8, 1, 6]; 
$('svg rect.grid').each(function() { 
    $(this).attr('data-id', ids.shift()); 
}); 

注意这改变了阵列,因此,如果您需要多次运行此程序,确保您不会存储阵列永久的某处,并且您每次都重新初始化它。 (例如,将此代码放入函数中并调用它,将会起作用。)

+0

哇,非常感谢!我只是用Javascript来弄湿我的脚,它仍然让我感到困惑。希望研究这个工作将如何帮助我更好地理解! –

+0

@JamesBurton数组'.shift()'方法很简单:它移除第一个元素(将所有其他元素向下移动一个)并返回它移除的元素。 – cdhowie