2011-10-09 114 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