0

我的代码需要在变量中捕获图像的“src”。然后它需要将此变量插入到围绕图像的链接上的“href”标签中。

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

不幸的是,似乎正在发生的事情是“测试” var 只获取最后一个 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+'');

});

否则,在每次迭代中,您将 all 的 href 设置为$('.fancybox-image-link')当前 href 属性,从而获得$('.fancybox-image-link')最后一个 href 的alle

于 2012-10-03T15:37:12.437 回答
0

您的链接选择器不正确。这$('.fancybox-image-link')将选择该类的所有链接,因此所有链接都将具有相同的 href 属性。

您需要一个更具体的链接选择器。如果图像和链接都包含在同一个元素中,也许可以尝试使用父元素。

于 2012-10-03T15:37:41.093 回答
0

您应该更具体地$('.fancybox-image-link')使用诸如 child ... to 之类的选择方法$(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 回答