Ich habe eine Bild-URL in einer imageUrl
-Variablen und versuche, sie mit jQuery als CSS-Stil festzulegen:
$('myObject').css('background-image', imageUrl);
Dies scheint nicht zu funktionieren, da:
console.log($('myObject').css('background-image'));
gibt none
zurück.
Irgendeine Idee, was ich falsch mache?
Wahrscheinlich möchten Sie dies (um es wie eine normale CSS-Hintergrundbild-Deklaration zu machen):
$('myObject').css('background-image', 'url(' + imageUrl + ')');
Sie möchten doppelte Anführungszeichen (") vor und nach der imageUrl wie folgt einfügen:
$('myOjbect').css('background-image', 'url("' + imageUrl + '")');
Auf diese Weise wird das Bild, wenn es Leerzeichen enthält, weiterhin als Eigenschaft festgelegt.
Alternativ zu dem, was die anderen korrekt vorschlagen, finde ich es normalerweise einfacher, CSS-Klassen zu wechseln, anstatt einzelne CSS-Einstellungen (insbesondere URLs von Hintergrundbildern). Zum Beispiel:
// in CSS
.bg1
{
background-image: url(/some/image/url/here.jpg);
}
.bg2
{
background-image: url(/another/image/url/there.jpg);
}
// in JS
// based on value of imageUrl, determine what class to remove and what class to add.
$('myOjbect').removeClass('bg1').addClass('bg2');
Hier ist mein Code:
$ ('body'). css ('background-image', 'url ("/ apo/1.jpg")');
Viel Spaß, Freund
Zusätzlich zu den anderen Antworten können Sie auch "Hintergrund" verwenden. Dies ist besonders nützlich, wenn Sie andere Eigenschaften festlegen möchten, die sich auf die Art und Weise beziehen, wie das Bild vom Hintergrund verwendet wird, z.
$("myObject").css("background", "transparent url('"+imageURL+"') no-repeat right top");
Für diejenigen, die eine tatsächliche URL und keine Variable verwenden:
$('myObject').css('background-image', 'url(../../example/url.html)');
Versuchen Sie, das Attribut "style" zu ändern:
$('myObject').attr('style', 'background-image: url("' + imageUrl +'")');
String-Interpolation zur Rettung.
let imageUrl = 'imageurl.png';
$('myOjbect').css('background-image', `url(${imageUrl})`);
Das Problem, das ich hatte, ist, dass ich ein Semikolon ;
am Ende des Werts url()
eingefügt habe, wodurch der Code nicht mehr funktioniert.
NICHT ARBEITSCODE:
$('#image_element').css('background-image', 'url(http://example.com/img.jpg);');
ARBEITSCODE:
$('#image_element').css('background-image', 'url(http://example.com/img.jpg)');
Beachten Sie das ausgelassene Semikolon ;
am Ende des Arbeitscodes. Ich kannte einfach nicht die richtige Syntax und es ist wirklich schwer, sie zu bemerken. Hoffentlich hilft das jemand anderem im selben Boot.