获取图像 src,然后将其作为 href 应用于 .each 循环中

Get image src then apply it as href in .each loop

本文关键字:href 应用于 each 循环 src 图像 然后 获取      更新时间:2023-09-26

我有一个用jQuery Cycle构建的内容旋转器,并试图将jQuery Fancybox添加到其中。

.HTML:

<div class="secRotatorSlide">
    <a href="" class="iframe enlargePic">Enlarge</a>
    <img class="slideImg" src="secRotatorImg/slide1.png" alt="Slide 1" />
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>

上述 HTML 有多组。 所有设备都正确旋转。

j查询:

jQuery('.secRotatorSlide').find('.slideImg').each(function() {
    var iframeSrc = jQuery(this)[0].src;
    //alert(iframeSrc)
    jQuery('a.enlargePic').attr('href', iframeSrc);    
});

如果我注释掉设置 href 的行,并取消注释警报行,它将一个接一个地正确提醒每个 src。 如果我保持原样,它会从最后一组 html 中获取图像 src,并将其应用于所有 html 集中所有 href 的每个 href。

我做错了什么? 我假设它在jQuery的最后一行,但我不确定。 我尝试在最后一行中使用this,但这根本没有作用。

你的选择器,jQuery('a.enlargePic')太通用了。这将在 DOM 中找到所有匹配的元素,您将继续为其设置 href 值。您需要限制其范围。

尝试: jQuery(this).siblings('a.enlargePic').attr('href', iframeSrc);

这样,您只为作为您正在处理的元素的同一父级(兄弟姐妹)的子元素设置值。

http://api.jquery.com/siblings/

编辑:如果你的所有图像和锚点共享同一个父级,那么考虑$.prev()

jQuery(this).prev('a.enlargePic').attr('href', iframeSrc);

选择器a.enlargePic选择具有特定类的 DOM 中的所有链接。 使用 .prev() 定位当前图像旁边的唯一

链接