[英]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.