2013-02-25 80 views
5

我有一系列圖片,每個圖片都有「photo」;Jquery:獲取每個圖片src

我想通過其中的每一個並檢索照片來源,稍後在if語句中使用。我寫了下面的代碼來做到這一點,但一直沒有成功:

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

我不知道我在哪裏出錯了。這似乎對我有意義,但我沒有在控制檯中得到任何東西。

任何人都可以指向正確的方向嗎?

+0

只是避免'長度'你很好去 – coolguy 2013-02-25 05:47:12

+0

@ubercooluk謝謝,但它似乎沒有區別nce是否使用它 – MeltingDog 2013-02-25 05:48:38

+0

'.photo'是圖像的類..可以重複檢查 – coolguy 2013-02-25 05:49:25

回答

11

如果已經對所有img標籤那就試試這個給予相同的類名,

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

爲什麼我們不能使用imgsrc = this.attr('src')?它會拋出一個錯誤 – Heihachi 2014-02-08 08:53:02

+0

許多thanx兄弟,這個答案對我來說非常有用。 :) – 2015-01-03 12:41:43

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

你正試圖在這裏讀的對象/數組的lenght斷章取義:

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

變化

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

編輯:爲了檢查屬性存在

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

肯定會仍然工作,但?它只會給我一個數字而不是一個字符串。我有長度,因爲我想做,如果稍後聲明,例如:if(imgsrc <1) – MeltingDog 2013-02-25 05:58:04

+0

您仍然可以使該語句,如果(imgsrc == undefined)',請參閱更新的答案 – yoda 2013-02-25 05:59:51

0

可能是你缺少doc ready handler

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

確保加載這個腳本首先那麼你$.each()功能:

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