2013-02-25 25 views
5

Mam serię zdjęć, każdy z klasą "zdjęcie";Jquery: Pobierz każdy obraz src

Chciałbym przejść przez każdą z nich i pobrać źródło zdjęć, które będzie później używane w instrukcji if. Napisałem poniższy kod, aby to zrobić, ale nie były udane:

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

nie jestem pewien, gdzie mam pójść źle tutaj. Wydaje mi się, że to ma sens, ale niczego nie dostaję w konsoli.

Czy ktoś może wskazać mi właściwy kierunek?

+0

po prostu unikaj 'długości', które chcesz przejść – coolguy

+0

@ubercooluk dzięki, ale wydaje się, że nie ma różnicy nce, czy go używam, czy nie, – MeltingDog

+0

'.photo' jest klasą obrazu. czy możesz podwójnie sprawdzić, że – coolguy

Odpowiedz

11

Jeśli dałeś taką samą nazwę klasy dla wszystkich img tag następnie spróbować tego,

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

Dlaczego nie możemy użyć imgsrc = this.attr ('src')? rzuca mi błąd – Heihachi

+0

Wiele Bródek, ta odpowiedź jest dla mnie bardzo przydatna. :) –

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

Próbujesz odczytać lenght obiektu/tablicy z kontekstu tutaj:

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

zmiana

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

edit: aby sprawdzić, czy atrybut istnieje

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

na pewno jeszcze by się udało? Po prostu dałoby mi liczbę zamiast sznurka. Mam tam długość, ponieważ chcę zrobić i jeśli później wypowiedzieć na przykład: if (imgsrc <1) – MeltingDog

+0

nadal możesz zrobić to zdanie, 'if (imgsrc == undefined)', zobacz zaktualizowaną odpowiedź – yoda

0

Może brakuje doc ready handler:

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

upewnij się, aby załadować skrypt pierwszy wtedy swoją $.each() funkcję:

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