objects - jQuery obtiene atributos de origen img de list y push in array
jquery map array of objects (2)
Tengo esta lista de miniaturas y me gustaría insertar las rutas de las imágenes (fuentes) en una matriz: 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>
Puede crear la matriz de atributos src más directamente usando map()
:
var tn_array = $("#thumbnails img").map(function() {
return $(this).attr("src");
});
Edición: tn_array
es un objeto aquí en lugar de una matriz estricta de JavaScript, pero actuará como una matriz. Por ejemplo, este es un código legal:
for (int i=0; i<tn_array.length; i++) {
alert(tn_array[i]);
}
Sin embargo, puede llamar a get()
, que lo convertirá en una matriz estricta:
var tn_array = $("#thumbnails img").map(function() {
return $(this).attr("src");
}).get();
¿Cómo se nota la diferencia? Llamada:
alert(obj.constructor.toString());
La primera versión será:
function Object() { [native code] }
El segundo:
function Array() { [native code] }
Puede recorrer el elemento ever img
:
var tn_array = Array();
$(''#thumbnails img'').each(function() {
tn_array.push($(this).attr(''src''));
});