2012-03-23 69 views
1

我找不到子节点的alt属性,我知道我有正确的父母。我究竟做错了什么?找不到图像的子节点jquery

Bar1很好,但我找不到bar2。

<ul class="small-image"> 
    <li><a id="foo1"><img src="../images/imageSlide/s2.jpg" alt="pic1"></a></li> 
    <li><a id="foo2"><img src="../images/imageSlide/s2.jpg" alt="pic2"></a></li> 
<ul> 
$('ul.small-image li a').bind('click',function(){ 
    var elm = '#'+$(this+'div:first-child').attr('alt'); 
    //var elm = '#'+$(this+'img').attr('alt'); 
    console.log("Bar1: "+$(this).attr('id')) ; 
    console.log("Bar2: "+elm); 

}); 
+2

为什么你想选择'格:当没有DIV第一child'? – m90 2012-03-23 15:30:17

+0

这是无效的:'#'+ $(this +'div:first-child')。attr('alt');无论如何,Bar 2是什么?你想要得到什么? alt属性? – 2012-03-23 15:30:35

回答

0

子节点属性只(仅foo1)返回第一个子。我想你可能想看看jQuery的.children()函数。

1

我认为你正试图从图像

$('ul.small-image li a').bind('click',function(){ 
    console.log("Bar1: "+ $(this).attr('id')) ; 
    console.log("Bar2: "+ $(this).find("img").attr("alt")); // Find the image INSIDE the current A 

});​ 

this选择ALT将是A,所以你必须要找到里面的一个点击的图像和获取属性alt。只需使用$(this).find("img").attr("alt")

而一个的jsfiddle http://jsfiddle.net/kL5P5/

+0

谢谢..... find()是票。 – 2012-03-24 08:36:23

+0

好吧,将它标记为接受,如果它是答案=) – 2012-03-24 16:58:22