2010-11-20 88 views
0
<section class="photos"> 
    <table> 
     <tr> 
      <td><a href="/a"><img src="b.jpg" /></a></td> 
      <td><a href="/a"><img src="b.jpg" /></a></td> 
      <td><a href="/a"><img src="b.jpg" /></a></td> 
     </tr> 
     <tr> 
      <td><a href="/a"><img src="b.jpg" /></a></td> 
      <td><a href="/a"><img src="b.jpg" /></a></td> 
     </tr> 
    </table> 
</section> 

然后我试图通过每个迭代来返回链接href和图像src。jQuery每个迭代问题

$(".photos td").each(function (index, value) { 
    console.log(value.a.attr('href')); 
    console.log(value.img.attr('src')); 
}); 

上述伪代码不幸运地工作。有任何想法吗?

回答

3

您不能在value上运行jQuery方法,因为它只是一个DOM节点。首先创建一个jQuery对象了它(我喜欢thisvalue说法,但他们在这种情况下,相同):

$('.photos td').each(function(){ 
    console.log($(this).find('a').attr('href')); 
    console.log($(this).find('img').attr('src')); 
}); 
1

亚当已经给出了答案,但因为我打字吧...试试这个:(唯一的区别是在遍历部分,因为亚当用“这个”,而我用“价值”(这是相同的)

$(".photos td").each(function (index, value) { 
    console.log($('a', value).attr('href')); 
    console.log($('img', value).attr('src')); 
}); 

不要忘记,值代表一个DOM元素(。而不是一个jQuery元素),而attr()是一个jQuery方法,只能用于jQuery对象。 另外,你不应该关闭你的标签吗?

1

试试这个:

$(".photos td").each(function (index, value) { 
    console.log($(this).find('a').attr('href')); 
    console.log($(this).find('img').attr('src')); 
});