jQuery récupère les attributs de source img De list et push dans array

j'ai cette liste de vignettes et je voudrais pousser les chemins d'image (sources) dans un tableau: tn_array

<ul id="thumbnails">
    <li><img src="somepath/tn/004.jpg" alt="fourth caption" /></a></li>
    <li><img src="somepath/tn/005.jpg" alt="fifth caption" /></a></li>
    <li><img src="somepath/tn/006.jpg" alt="sixth caption" /></a></li>
</ul>
21
demandé sur FFish 2010-03-01 13:08:07

2 réponses

vous pouvez créer le tableau des attributs src plus directement en utilisant map() :

var tn_array = $("#thumbnails img").map(function() {
  return $(this).attr("src");
});

Edit: tn_array est un objet ici plutôt qu'un tableau Javascript strict mais il agira comme un tableau. Par exemple, c'est le code légal:

for (int i=0; i<tn_array.length; i++) {
  alert(tn_array[i]);
}

vous pouvez toutefois appeler get() , ce qui en fera un tableau strict:

var tn_array = $("#thumbnails img").map(function() {
  return $(this).attr("src");
}).get();

Comment faire la différence? Appel:

alert(obj.constructor.toString());

la première version sera:

function Object() { [native code] }

La deuxième:

function Array() { [native code] }
48
répondu cletus 2015-03-10 21:12:05

Vous pouvez faire une boucle à travers les siècles img élément:

var tn_array = Array();

$('#thumbnails img').each(function() {
    tn_array.push($(this).attr('src'));
});
5
répondu Felix Kling 2010-03-01 10:13:09