0

私のコードは、変数内の画像の「src」をキャプチャする必要があります。次に、この変数を画像を囲むリンクの「href」タグに挿入する必要があります。

$('.fancybox-image-li img').each(function(test) {
    var test = $(this).attr("src");
    $('.fancybox-image-link').attr('href', ''+test+'');
});

残念ながら、発生しているように見えるのは、「test」変数が最後のimgの属性のみを取得し、これをすべての「href」属性に挿入していることです。

画像ごとに変数を変更する方法についてのアイデア。

4

4 に答える 4

1

多分あなたはするべきです

$('.fancybox-image-li img').each(function(test) {

    var test = $(this).attr("src");
    // find the closest element with the class
    $( this ).closest('.fancybox-image-link').attr('href', ''+test+'');

});

それ以外の場合は、各反復で、すべてのhrefを$('.fancybox-image-link')現在のhref属性に設定$('.fancybox-image-link')し、最後のhrefですべてを取得します。

于 2012-10-03T15:37:12.437 に答える
0

リンクセレクターは正常ではありません。これ$('.fancybox-image-link')により、そのクラスのすべてのリンクが選択されるため、すべてのリンクが同じhref属性を持ちます。

リンクには、より具体的なセレクターが必要です。画像とリンクの両方が同じ要素に含まれている場合は、親要素を使用してみてください。

于 2012-10-03T15:37:41.093 に答える
0

$('.fancybox-image-link')子...からのような選択方法を使用することで、より具体的にする必要があります$(this)

于 2012-10-03T15:38:27.927 に答える
0

$('.fancybox-image-link')そのクラスのすべての要素を返します。基本的に、ループの反復ごとにそれらすべてを変更します。

代わりに、を使用.index()して個々のものを選択します。

$('.fancybox-image-li img').each(function(index, value) {
    $('.fancybox-image-link').index(index).attr('href', $(this).attr("src"));
});
于 2012-10-03T15:38:47.993 に答える