2015-02-23 26 views
0

所以,我有一個15個鏈接的數組,我想將它們作爲img src傳遞到我的html元素中。我的元素都是課堂。卡,我想我會寫一個循環,而不是硬編碼(我必須用不同的鏈接執行45次)。用.class編寫for循環:eq()

,所以它看起來像這樣

var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 
for(x=0;x<picks1.length;x++) { 
     $(".card:eq(x)").src = "picks1[x]"; 
    } 

是有辦法做到這一點這樣的嗎?我覺得這是不行的,因爲在.card:eq(x)的引號。 (從1-15有45個選擇陣列和它們的長度變化)。有沒有另一種方法來做到這一點?

這是一個更大的網頁的一部分,如果需要,可以發佈源代碼,基本上它會讀取另一個程序生成的日誌文件,然後在第三方網站上創建鏈接並將它們放入數組中。

+0

嘗試'$(「卡」需要).eq(x).attr('src',picks1 [x]);' – atmd 2015-02-23 08:59:41

+0

'「.card:eq(」+ x +「)」'? – dandavis 2015-02-23 08:59:51

回答

0

你必須使用+ - 運算符插入一個變量到您的選擇字符串:

var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 
for(x=0;x<picks1.length;x++) { 
    $(".card:eq(" + x + ")").src = picks1[x]; 
    // OR 
    $(".card").eq(x).attr('src', picks1[x]); 
} 
0
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 
var cards = $(".card"); 
for (x = 0; x < picks1.length; x++) { 
    cards.eq(x).attr('src', picks1[x]); 
} 
0

你要設置的熱銷商品1值[X]爲字符串,嘗試刪除引號。使用下面

var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 
for(x=0;x<picks1.length;x++) { 
     $(".card").eq(x).src = picks1[x]; 
    } 

的代碼或使用attr()函數中使用它

$(".card").eq(x).attr('src',picks1[x]); 

希望這有助於你

2

儘管上述所有的答案是正確的,我想緩存的$('.card')值將更好

var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 
$(".card").slice(0, picks1.length).attr('src', function (i) { 
    return picks1[i] 
}) 

注意:.slice(0, picks1.length)不是如果$(".card")picks1長度將是相同的

+0

是的,長度總是相同的,所以當我有更多的卡片而不是鏈接時,我會隱藏它們。現在我只是用.class的正確語法來完成它:eq() – 2015-02-23 09:11:39

1

比方說你有一個pickArray其中有45個數組長度爲1-15.You可以這樣寫

var i=0, length = pickArray.length, j=0, arrLen=0, arr; 
    for(;i<length;i++){ 
    arr = pickArray[i]; 
    arrLen = arr.length; 
    for(j=0;j<arrLen;j++) { 
     $(".card:eq("+j+")").src = arr[j]; 
    } 
}