2010-11-20 87 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')); 
});