我使用jQuery来更改特定元素的背景图像。我得到它的工作,但如果我把相同的命名元素,它复制了另一个元素的背景,并没有从自己拍照。不,我不能改变类名,它们必须是相同的。
JS:
$(".tumblr-photoset").each(function() {
$(".photo-slideshow").css("background-image", "url(" + $('.photo-slideshow img:first-child').attr('src') + ")");
});
CODEPEN:
http://codepen.io/aleksitappura/pen/xshvy
因此,代码会拍摄.photoset
的第一张照片并随之更改背景图片。
谢谢!
答案 0 :(得分:1)
您需要告诉它在其子元素中查找第一张照片,而不是整个集:
$(".tumblr-photoset").each(function() {
$(this).find(".photo-slideshow").css(
"background-image",
"url(" + $(this).find('.photo-slideshow img:first-child').attr('src') + ")"
);
});
因此,$(this).find(".photo-slideshow")
是关键,$(this)
是当前迭代的对象。
答案 1 :(得分:0)
不确定是否需要每个声明。
这是你想要的吗?
$(".photo-slideshow").css("background-image", "url(" + $(this, 'img:first-child').attr('src') + ")");
您需要在.photo-slideshow