2017-04-20 45 views
0

我有20個文件夾,每個文件夾都有一組圖像,有些文件夾只有8張圖片,而其他文件夾最多隻有200張。所有文件夾的名稱都是從1到20,每個文件夾中的所有圖片也用數字命名。我想將所有文件夾中的所有圖片附加到HTML文檔中。這是我有:JQuery:我怎樣才能調用一個函數,多次使用兩個參數,每次都有不同的參數?

var storedPictures = []; 
    var picture, folder; 
    function addPictures(x, y) { 
    for(folder = 1; folder <= x; folder++); 
    for(picture = 1; picture <= y; picture++) { 
     storedPictures.push(
     '<img ' + 
     'src="/path/to/file/' + folder + '/' + 
     picture + '.jpg">' 
    ); 
    } 

我有其他的代碼需要的第一張圖片爲縮略圖,並在頁面追加它,當用戶點擊了它打開所有從該組圖片的新窗口。它適用於只有一個文件夾和設置,當我調用該函數像這樣:

addPictures(1, 26) 

我得到的所有領夾1. 26張照片,但我希望所有的圖片,從所有的文件夾,並簡單地寫該呼叫多次不起作用:

addPictures(1, 26) 
addPictures(2, 10) 
addPictures(3, 36) 

而且這樣我只得到我首先調用的集合(1,26)。

我是JavaScript的新手,所以我的細節可能沒有足夠的意義,所以請告訴我我應該給的其他細節。謝謝。

回答

0

你的例子中有幾個錯誤。首先,addPictures函數忽略了右括號。我想這是一個複製粘貼錯誤。

另,夾環,是很多很難點:for(folder = 1; folder <= x; folder++);

由於分號;的,環路運行空。試着做for(folder = 1; folder <= x; folder++) console.log(folder); console.log(folder)

什麼情況是,當你設置你的x到例如3,文件夾循環遞增,從1到3的文件夾(實際上,通過獲取循環之外它得到4)。對於x==1,這種行爲並不會發生,因爲folder++從未得到執行。

正因爲如此,當調用addPictures(2, 10),要從文件夾3添加圖片數爲1〜10,而不是2

從該循環卸下分號會得到更合理的輸出。但是,我仍然不確定,這是一個理想的輸出。如果刪除分號,addPictures(2, 10)實際上將從目錄2中添加圖片1到10,但它也會從目錄1中獲取圖片1到10。這是因爲第一次迭代將保存folder=1,並且只有第二次迭代將具有folder=2。 `addPictures(3,36)將嘗試從1 1目錄,2號和3

所以我猜你想要什麼加載圖片36:

function addPictures(folder, maxPicNumber) { 
    for(picture = 1; picture <= maxPicNumber; picture++) { 
     storedPictures.push(
     '<img ' + 
     'src="/path/to/file/' + folder + '/' + 
     picture + '.jpg">' 
    ); 
    } 
    } 
0

你的函數試圖做的是取y圖片形式x文件夾(s)。如果是這種情況,您可以使用此功能

var storedPictures = []; 

    function addPictures(x, y) { 
    for(var folder = 1; folder <= x; folder++) { 
    for(var picture = 1; picture <= y; picture++) { 
     storedPictures.push(
     '<img ' + 
     'src="/path/to/file/' + folder + '/' + 
     picture + '.jpg">' 
     ); 
    } 
    //console.log(storedPictures); //print the result to console 
    } 
    } 
    addPictures(2,20); 
相關問題