2017-03-06 47 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