2010-11-20 11 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> 

Und dann versuche ich durch jedes zu durchlaufen, um den Link href und das Bild src zurückzugeben.jQuery jedes Iterationsproblem

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

Der obige Pseudo-Code funktioniert leider nicht. Irgendwelche Ideen?

Antwort

3

Sie können keine jQuery-Methoden auf value ausführen, da es nur ein DOM-Knoten ist. Erstellen Sie ein jQuery-Objekt aus der es zuerst (ich ziehe this zum value Argument, aber sie sind die gleichen in diesem Fall):

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

Adam gab die Antwort schon, aber da ich es war die Eingabe einer ... versuchen Sie dies: (der einzige Unterschied ist im Traversal Teil, da Adam verwendet „this“, während ich „Wert“ verwenden (die gleich sind)

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

Sie diesen Wert nicht vergessen, für ein dOM-Element (. (und kein jQuery-Element), und attr() ist eine jQuery-Methode, die nur für jQuery-Objekte verwendet werden kann. Auch sollten Sie Ihre Tags nicht schließen?

1

Versuchen Sie folgendes:

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