2010-11-30 6 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 img内のすべてのrelの属性を取得し、そのような配列にこれらを追加する必要があるページのロード:

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

ことができます誰も私がページに持って

助けて?

+0

、フォーマットのため、単にコードのセクションを強調表示し、上の「101010」ボタンをクリックすると、4つのスペースにスペースが置かれます。マークダウンはそれをうまくフォーマットします。上記の編集をクリックして、私がそれを微調整した後の書式設定の様子を確認してください:) –

答えて

0
あなたは、マップ機能を使用することができ

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

これはうまくいくようですが、文字列を配列に変換するにはどうすればいいですか? –

3

このようにあなたは、あなたがしたい文字列の配列を取得するために.map()を使用することができます:hrefが行かなければならない理由

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

<a>名または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

これはFirefoxで未定義を返しますか? –

+0

@チル - 最初の? 'rel'は無効な属性なので、できるだけ2番目の属性と一緒に行きます。 –

+0

まだ配列からプリロードすることができないようです。 –