2011-10-09 116 views
1

當用戶點擊class click_1時,我想要顯示圖像的路徑。請注意,click_1發生在兩種情況下。jquery選擇器獲取圖像路徑

<a href="#" class='click_1' ><img src="assets/img/shoe05.png" /></a> 
<h4><a href="#" class='click_1' >title link 2</a></h4></li> 


    $('.click_1').click(function() {    
     var fullPath = $(this).children("img:first").attr('src'); 
     if (typeof fullPath === "undefined"){ 
         // this one does not work... 
      var fullPath = $(this).prev("img").children("img:first").attr('src'); 
      console.log(fullPath); 
     } 
    } 

回答

1

爲什麼不把兩個都包裝在一個<a />標籤中?從HTML5開始,這就是有效的。

<a href="#" class='click_1'> 
    <img src="assets/img/shoe05.png" /> 
    <h4>title link 2</h4> 
</a> 
$('.click_1').click(function() {    
    var src = $(this).children('img').first().attr('src'); 
    console.log(src); 
}); 
+0

所有很好的答案。這是最簡單的。 –

0

分配正確的元素,以一個變種,檢查它是否存在,然後拉出「SRC」。事情是這樣的:

$('.click_1').click(function() {    
    var imgElement = $(this).find("img").first(); 
    if (imgElement.length){ 
     var fullPath = imgElement.attr('src'); 
     console.log(fullPath); 
    } 
} 
0

假設類click_1是相關的代碼本節唯一的,你可以這樣做:

$('.click_1').click(function() {    

    var element = $(this).find('img').first() || $('.click_1 img').first(); 
    var fullPath = element.attr('src'); 

    console.log(fullPath); 
}); 

然而,有些東西告訴我,它會更好地建立一個功能它將您的類名稱作爲參數,因此您可以在頁面上爲多個click_X元素執行它。 (需要更多信息)

+0

不要使用'[0]',只能再次創建一個jQuery對象。改用'eq(0)'或'first()'。 – Eric

+0

是的,好點,謝謝。 – rochal