繁体   English   中英

通过数据 ID 选择图库并使用 jQuery 将子图像放入数组

[英]Selecting a gallery by data-id and putting child images in array using jQuery

我的 html 文档中有几个 .gallery div。 每个画廊包含几个图像。 如果您单击具有数据 ID 的特定 .gallery 中的图像,我想使用它的数据 ID 将来自同一画廊的所有图像作为 src 属性放入数组中。

这是我试过的:

 $('.img').click(function(){ var galleryValue = $(this).closest('.gallery').attr('data-id'); // alert(galleryValue); $('.gallery').data('id').children().each(function() { urls.push($(this).attr('src')); alert(urls); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="gallery" data-id="0"> <img class="img" src="img/desert.jpg"> <img class="img" src="img/flowers.jpg"> <img class="img" src="img/night.jpg"> <img class="img" src="img/sunset.jpg"> <img class="img" src="img/surf.jpg"> </div>

.data('id')返回一个字符串,您不能将其链接到 jQuery 对象中。 您可以.filter('[data-id="'+galleryValue+'"]')进行链接或将属性选择添加到您的实际选择器中,如下所示:

 $('.img').click(function(){ var galleryValue = $(this).closest('.gallery').data('id'); // alert(galleryValue); urls = []; $('.gallery[data-id="'+galleryValue+'"]').children().each(function() { urls.push($(this).attr('src')); }); alert(urls); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="gallery" data-id="0"> <img class="img" src="img/desert.jpg"> <img class="img" src="img/flowers.jpg"> <img class="img" src="img/night.jpg"> <img class="img" src="img/sunset.jpg"> <img class="img" src="img/surf.jpg"> </div>

这应该工作

$('.img').click(function(){
  var urls = [];
  $(this).closest('.gallery').find('img').each(function() {
    urls.push($(this).attr('src'));
  });
  // now do something with urls
});

如果您还需要id那么您也可以在遍历时获取它。 但是为了在同一个容器中查找图像,您可以完全根据上下文进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM