用jQuery更改背景图像

时间:2014-08-02 12:04:49

标签: javascript jquery html css

我使用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的第一张照片并随之更改背景图片。

谢谢!

2 个答案:

答案 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)是当前迭代的对象。

见这里:http://codepen.io/anon/pen/hnJwp

答案 1 :(得分:0)

不确定是否需要每个声明。

这是你想要的吗?

$(".photo-slideshow").css("background-image", "url(" + $(this, 'img:first-child').attr('src') + ")");

您需要在.photo-slideshow

的范围内进行搜索

输出返回:http://codepen.io/anon/pen/jauir