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。

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

不幸的是,上面的伪损坏代码不起作用。有任何想法吗?

4

3 回答 3

3

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

$('.photos td').each(function(){
    console.log( $(this).find('a').attr('href') );
    console.log( $(this).find('img').attr('src') );
});
于 2010-11-20T19:25:41.513 回答
1

亚当已经给出了答案,但是因为我正在输入它......试试这个:(唯一的区别在于遍历部分,因为亚当使用“this”而我使用“value”(它们是相同的)。

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

不要忘记 value 代表一个 dom 元素(而不是 jQuery 元素),并且 attr() 是一个仅适用于 jQuery 对象的 jQuery 方法。另外,您不应该关闭标签吗?

于 2010-11-20T19:27:18.823 回答
1

尝试这个:

$(".photos td").each(function (index, value) {
    console.log($(this).find('a').attr('href'));
    console.log($(this).find('img').attr('src'));
});
于 2010-11-20T19:28:24.303 回答