質問

<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'));
});

上記擬似破壊コードは、残念ながら動作しません。任意のアイデア?

役に立ちましたか?

解決

それだけでDOMノードだから

あなたは、valueにjQueryのメソッドを実行することはできません。それからjQueryオブジェクトを作成します。最初の(私はthis引数にvalueを好むが、彼らはこのような場合には同じです):

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

他のヒント

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

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

DOは値がDOM要素(およびないjQueryの要素)を表していることを忘れてはいけない、とのattr()はjQueryのオブジェクトだけのために働くjQueryの方法です。 また、あなたはあなたのタグを閉じるべきではない?

これを試してみてください

$(".photos td").each(function (index, value) {
    console.log($(this).find('a').attr('href'));
    console.log($(this).find('img').attr('src'));
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top