2013-02-25 17 views
5

ho una serie di immagini ciascuna con la classe "photo";Jquery: Ottenere ogni src immagine

voglio passare attraverso ciascuno di questi e recuperare la fonte della foto, per un uso successivo in un'istruzione if. Ho scritto il codice qui sotto per fare questo, ma non ho avuto successo:

$.each($(".photo"), function() { 
    var imgsrc = $(this).attr("src").length; 
    console.log(imgsrc); 
}); 

io non sono sicuro di dove sono andato male qui. Sembra avere senso per me, ma non ottengo nulla nella console.

Qualcuno può indicarmi la giusta direzione?

+0

basta evitare il 'length' vi sono buone per andare – coolguy

+0

@ubercooluk grazie ma la sua sembra non fare differe nce se lo uso o no – MeltingDog

+0

'.photo' è la classe del image..can si DoubleCheck che – coolguy

risposta

11

Se hai dato lo stesso nome della classe per tutti i tag img quindi provare questo,

$(".photo").each(function() { 
    imgsrc = this.src; 
    console.log(imgsrc); 
    }); 
+0

Perché non possiamo usare imgsrc = this.attr ('src')? mi genera un errore – Heihachi

+0

Many thanx bro, questa risposta è molto utile per me. :) –

4
$(document).ready(function(){ 
    $(".photo").each(function() { 
     imgsrc = this.src; 
     console.log(imgsrc); 
    });  
}); 
0

Si sta cercando di leggere il lenght di un oggetto/array fuori contesto qui:

var imgsrc = $(this).attr("src").length; 

modifica

var imgsrc = $(this).attr("src"); 

modificare: al fine di verificare se l'attributo esiste

if (imgsrc == undefined) { /* do something */ } 
+0

sicuramente che sarebbe ancora lavorare però? Mi darebbe solo un numero invece di una stringa. Ho una lunghezza lì perché voglio fare e se in seguito affermazione: se (imgsrc <1) – MeltingDog

+0

puoi ancora fare quella dichiarazione, 'if (imgsrc == undefined)', vedi risposta aggiornata – yoda

0

Può essere che si trovi il doc ready handler:

$(function(){ 
    $.each($(".photo"), function() { 
    var imgsrc = $(this).attr("src").length; 
    console.log(imgsrc); // logging length it should now print the length 
    }); 
}); 

assicurarsi di caricare questo script prima allora il vostro $.each() funzione:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>