对于其中一个简单的CMS,我需要将src从标记传递给父div的background-image网址。有了明确的身份,一切都按原样运作,但现在我试图让它自动化,它只是不会起作用。虽然我非常确定它应该是一些语法错误,但我对Java来说还是一个新手。在此先感谢4任何提示! :)
到目前为止,这是我的代码:
var imageUrl = $(this).find('img').attr('src');
console.log(imageUrl)
$('.background-image').css('background-image', 'url(' + imageUrl + ')');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="background-image">
<img src="myimg1.jpg" class="imgtag">
</div>
<div class="background-image">
<img src="myimg2.jpg" class="imgtag">
</div>
<div class="background-image">
<img src="myimg3.jpg" class="imgtag">
</div>
&#13;
答案 0 :(得分:0)
你应该工作的......除了this
可能不是你认为的那样。如果从$(this)
事件中调用click
,则this
将设置为已点击的元素,因此它必须包含图像。
如果没有从那里调用,那么this
可能指的是窗口,这也不是你想要的。可能只是:
var imageUrl = $('#some-container').find('img').attr('src');
是你想要的,#some-container
是你可以定位的图像的一些父元素。
如果要将其应用于父级中的多个元素,可以使用以下内容:
$('#some-parent').find('img').each(image => {
let imageUrl = $(image).attr('src');
// do something with imageUrl
});
它会循环遍历img
内的每个#some-parent
,您可以使用几行代码执行所有这些内容。
答案 1 :(得分:0)
好的,感谢第一条评论我开始理解$(this)的含义:)所以我使用.each函数工作,我的最终java片段现在看起来像这样:
$(".full-image").each(function() {
var imageUrl = $(this).find('img').attr('src');
console.log(imageUrl)
$(this).css('background-image', 'url(' + imageUrl + ')');
});