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'));
kehrt zurück none
.
Irgendeine Idee, was ich falsch mache?
javascript
jquery
css
Blankman
quelle
quelle
Antworten:
Sie möchten dies wahrscheinlich (um es wie eine normale CSS-Hintergrundbilddeklaration zu machen):
quelle
Sie möchten doppelte Anführungszeichen (") vor und nach der imageUrl wie folgt einfügen:
Auf diese Weise wird das Bild, wenn es Leerzeichen enthält, weiterhin als Eigenschaft festgelegt.
quelle
$('myObject').css('background-image', 'url(' + encodeURIComponent(imageUrl) + ')');
$('.myObject').css('background-color', 'green');
arbeiten lassen, aber das Bild nicht ohne doppelte Anführungszeichen ändern. Vielen Dank!encodeURIComponent
funktioniert nicht, wenn ein Teil Ihrer URL bereits URL-Escapezeichen enthält. Sie sollten jedoch potenziellen doppelten Anführungszeichen in imageUrl entkommen:$('myObject').css('background-image', 'url("' + imageUrl.replace(/"/g, '\\"') + '")');
$('#elem').css('background-image', 'url(' + encodeURIComponent(thumbData.url) + ')');
gab mir das Tunbackground-image: url("%2Ffiles%2Fusers%2Fthumbs%2F36206608-hd-pics-3.jpg");
Alternativ zu dem, was die anderen richtig vorschlagen, fällt es mir normalerweise leichter, CSS-Klassen umzuschalten, anstatt einzelne CSS-Einstellungen (insbesondere Hintergrundbild-URLs). Zum Beispiel:
quelle
Hier ist mein Code:
Viel Spaß, Freund
quelle
Neben 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.
quelle
Für diejenigen, die eine tatsächliche URL und keine Variable verwenden:
quelle
Versuchen Sie, das Attribut "style" zu ändern:
quelle
String-Interpolation zur Rettung.
quelle
Das Problem, das ich hatte, war, dass ich
;
am Ende desurl()
Werts immer wieder ein Semikolon hinzufügte , wodurch der Code nicht mehr funktionierte.NICHT ARBEITSCODE:
ARBEITSCODE:
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.quelle
Vergessen Sie nicht, dass mit der CSS-Funktion jQuery Objekte übergeben werden können, mit denen Sie mehrere Elemente gleichzeitig festlegen können. Der beantwortete Code würde dann folgendermaßen aussehen:
$(this).css({'background-image':'url(' + imageUrl + ')'})
quelle
quelle