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

valuejQueryメソッドは単なるDOMノードであるため、で実行することはできません。最初にそれからjQueryオブジェクトを作成します(私thisvalue引数を好みますが、この場合は同じです):

$('.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

アダムはすでに答えを出しましたが、私がそれを入力していたので...これを試してください:(唯一の違いは、トラバーサル部分にあります。アダムは「値」(同じ)を使用しているのに「これ」を使用しているからです。

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

値は(jQuery要素ではなく)dom要素を表すことを忘れないでください。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 に答える