2013-04-04 147 views
1

我在一個目錄中有圖像,我試圖用jQuery將它們隨機分配給列表項。我有它的工作,但我不想重複圖像,如果他們已經被使用。這是我的jquery:從數組中隨機選擇圖像

var images = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg']; 

$("#collageWrap li").each(function() { 
    $('<img src="images/mosaic/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo($(this)); 
}); 

如果我有10張和20列表項,這個想法是對前10個列表項中的10張圖像,然後將其餘的則留爲空白。我如何更改此代碼以確保每張圖片僅使用一次?

回答

2

的溶液。將同時在隨機拍攝的圖像進行從源數組中刪除:

$("#collageWrap li").each(function() { 
    var index = Math.floor(Math.random()*images.length); 
    var img = images.splice(index, 1)[0]; 
    $('<img src="images/mosaic/' + img + '">').appendTo($(this)); 
    return images.length>0; 
});