Question

<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>

Et puis je suis en train de itérer à travers chacun de retourner le lien href et l'image src.

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

Le pseudo-code cassé au-dessus ne fonctionne malheureusement pas. Toutes les idées?

Était-ce utile?

La solution

Vous ne pouvez pas exécuter les méthodes jQuery sur value, car il est juste un nœud DOM. Créez un objet jQuery sur ce premier (je préfère this à l'argument value, mais ils sont les mêmes dans ce cas):

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

Autres conseils

Adam a déjà donné la réponse, mais depuis que je suis taper ... essayez ceci: (la seule différence est dans la partie traversal, depuis Adam utilise « ce » alors que je l'utilise « valeur » (qui sont les mêmes).

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

Ne pas oublier que la valeur représente un élément dom (et non un élément jQuery) et attr () est une méthode qui ne fonctionne que jQuery pour les objets jQuery. En outre, vous ne devriez pas fermerons vos balises?

Essayez ceci:

$(".photos td").each(function (index, value) {
    console.log($(this).find('a').attr('href'));
    console.log($(this).find('img').attr('src'));
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top