2016-11-11 70 views
-1

對於這些簡單CMS之一,我需要將src從標記傳遞給父div的background-image url。有了確定的id,所有的東西都可以正常工作,但是現在我試圖自動化它,而且它不起作用。雖然我很確定它應該是一些語法錯誤,但我對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>

+0

這是什麼? –

+2

'我對Java很新。'javascript?或Java。都? –

回答

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內,您可以執行實際你循環只需要幾行代碼即可。

+0

任何關心解釋downvote?基於他們,我願意打賭,這是問題所在。 – samanime

+0

謝謝你的回答。你的解決方案工作正常,但我必須爲網站上的每個圖像添加一行,並且會有一些:)所以你有什麼想法如何自動化這個?因此,在每個'.background-image'容器中都會找到img,並將src傳遞到容器的後臺網址。 另外我無法解釋downvote,我發現你的答案非常有幫助! – hans

+0

看看我更新的答案。 – samanime

0

好感謝的第一個評論,我開始明白的$的含義(這):)所以我得到這個使用。每個功能的工作,我最後的Java代碼現在看起來是這樣的:

$(".full-image").each(function() { 
 
    var imageUrl = $(this).find('img').attr('src'); 
 
    console.log(imageUrl) 
 
    $(this).css('background-image', 'url(' + imageUrl + ')'); 
 
    });

+0

那不是Java。這就是JavaScript。兩者是完全不同的東西。 – Craicerjack