2010-11-30 4 views
0

Je suis en train de créer un tableau images à précharger en obtenant chacun des liens d'image dans les attributs rel.Problème jQuery Array

Je sur une page:

<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> 

Lorsque la page se charge je dois obtenir tous les rel attributs dans le #gallery_thumbs a img et les annexer à un tableau comme ceci:

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

Quelqu'un peut-il Aidez-moi?

+0

pour le formatage, sélectionnez simplement la section du code et cliquez sur le bouton '101010' en haut, il l'espace sur 4 espaces ... et markdown le formatera bien pour vous. Cliquez sur Modifier ci-dessus pour voir comment la mise en forme semble après je l'ai modifié :) –

Répondre

0

Vous pouvez utiliser la fonction carte:

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

Cela semble fonctionner mais comment convertir les chaînes en un tableau? –

3

Vous pouvez utiliser .map() pour obtenir un tableau des chaînes que vous voulez, comme ceci:

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

Un <a> sans nom ou href est invalide si, pourquoi ne pas avoir le href aller la image que vous voulez (qui se dégraderait gracieusement), et empêcher cette action en JavaScript? Votre balisage ressemblerait à ceci:

<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> 

Faire le script ci-dessus plus simple aussi:

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

Cela renvoie undefined dans Firefox ?? –

+0

@Chill - Le premier? 'rel' est un attribut invalide, donc j'irais * vraiment * avec le second si possible. –

+0

Je n'arrive toujours pas à obtenir le préchargement à partir du tableau, –