使用 JS 从图像中获取动态 id 和 url

Fetching dynamic id and url from image with JS

我正在我的项目中实现一个 fancybox,我正在编写一个脚本来自动在图像周围包裹一个锚点,图像 url 和 "data-fancybox" 属性让fancybox 脚本做它的事情。但是,我只得到第一张图片的 url,因为它们共享相同的 class。有个动态图id好像是要拿的

我的问题是 - 我如何使用这个图形 ID 来获取适当的 img src?

html是这样的:

    <figure id="XXXXXXX">
    <div>

    <img src="image.jpg" />

    </div>
    </figure>

... other stuff ...

    <figure id="YYYYYYY">
    <div>

    <img src="image2.jpg" alt="">

    </div>
    </figure>

我现在的代码如下(有效,但只有 returns 第一张图片 url):

$(document).ready(function() {
        var src = $("figure img").attr("src");
        var a = $("<a/>").attr( { href:src , "data-fancybox":"" } );
        $("figure img").wrap(a);
});

我知道我可以使用

var id = $("figure").attr("id");

以获得我需要的 ID,但我对编码还很陌生,所以我不确定如何实现它并使用它来获得正确的 url。感谢您的帮助!

如果您的目标是让图片可点击,那么您可以这样做:

$('figure img').each(function() {
  $(this).parent().css({cursor: 'pointer'}).attr('data-fancybox', 'gallery').attr('data-src', this.src);
});

演示版 - https://jsfiddle.net/1jznsL7x/

提示:无需创建锚元素,您可以将 data-fancyboxdata-src 属性添加到任何元素,它会自动工作。