2010-11-30 23 views
0

我試圖通過獲取rel屬性中的每個圖像鏈接來預先創建數組圖像。jQuery數組問題

我有一個頁面上:

<div id="gallery_thumbs"> 
    <a><img src="images/image-1-thumb.jpg" rel="images/image-1.jpg" /></a> 
    <a><img src="images/image-2-thumb.jpg" rel="images/image-2.jpg" /></a> 
    <a><img src="images/image-3-thumb.jpg" rel="images/image-3.jpg" /></a> 
    <a><img src="images/image-4-thumb.jpg" rel="images/image-4.jpg" /></a> 
</div> 

頁面加載時我需要把所有的#gallery_thumbs a imgrel屬性和附加這些到一個數組,像這樣:

preload([ 'images/image-1.jpg', 'images/image-2.jpg', 'images/image-3.jpg', 'images/image-4.jpg']); 

任何人都可以幫幫我?

+0

進行格式化,只突出的代碼段和點擊頂部的'101010`按鈕,它會將它分隔4個空格......並且減價會很好地爲您格式化。點擊上面的編輯,看看我調整它後格式的外觀:) – 2010-11-30 14:40:55

回答

0

您可以使用地圖功能:

$("img").map(function(i,e) { return $(e).attr('rel');}) 
3

您可以使用.map()得到你想要的字符串數組,像這樣:

var arr = $("#gallery_thumbs img").map(function() { 
      return $(this).attr("rel"); 
      }).get(); 
preload(arr); 

<a>沒有名稱或href無效但是,爲什麼沒有href去你想要的圖像(它會優雅地降級),並阻止在JavaScript中的操作?您的標記應該是這樣的:

<div id="gallery_thumbs"> 
    <a href="images/image-1.jpg"><img src="images/image-1-thumb.jpg" /></a> 
    <a href="images/image-2.jpg"><img src="images/image-2-thumb.jpg" /></a> 
    <a href="images/image-3.jpg"><img src="images/image-3-thumb.jpg" /></a> 
    <a href="images/image-4.jpg"><img src="images/image-4-thumb.jpg" /></a> 
</div> 

使上面的腳本簡單得:

var arr = $("#gallery_thumbs a").map(function() { return this.href; }).get(); 
preload(arr); 
+0

這將返回undefined在Firefox? – 2010-11-30 16:05:36

+0

@Chill - 第一個? `rel`是一個無效的屬性,所以如果可能的話,我會*真的去。 – 2010-11-30 16:06:48