我的代码需要捕获变量中图像的'src'。然后,它需要将此变量插入到围绕图像的链接上的“href”标记中。
$('.fancybox-image-li img').each(function(test) {
var test = $(this).attr("src");
$('.fancybox-image-link').attr('href', ''+test+'');
});
不幸的是,似乎正在发生的是'test'var只获取最后一个img的属性,然后将其插入到所有'href'属性中。
任何想法如何让每个图像更改变量。
答案 0 :(得分: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+'');
});
否则,在每次迭代中,您将所有$('.fancybox-image-link')
的href设置为当前href属性,从而获得最后一个href的$('.fancybox-image-link')
答案 1 :(得分:0)
您的链接选择器不正常。此$('.fancybox-image-link')
将选择与该类相关的所有链接,因此所有链接都具有相同的href属性。
您需要一个更具体的链接选择器。如果图像和链接都包含在同一个元素中,也许可以尝试使用父元素。
答案 2 :(得分:0)
您应该使用{child}等选择方法$('.fancybox-image-link')
更具体地使用$(this)
。
答案 3 :(得分:0)
$('.fancybox-image-link')
返回所有元素的元素。你实际上是在每次循环迭代时都修改它们。
相反,请使用.index()
选择个别的:
$('.fancybox-image-li img').each(function(index, value) {
$('.fancybox-image-link').index(index).attr('href', $(this).attr("src"));
});