J'ai une URL d'image dans une variable imageUrl
et j'essaie de la définir comme style CSS à l'aide de jQuery:
$('myObject').css('background-image', imageUrl);
Cela semble ne pas fonctionner, car:
console.log($('myObject').css('background-image'));
renvoie none
.
Une idée, qu'est-ce que je fais mal?
Vous voulez probablement ceci (pour qu’il ressemble à une déclaration d’image d’arrière-plan CSS normale):
$('myObject').css('background-image', 'url(' + imageUrl + ')');
Vous voudrez inclure des guillemets doubles (") avant et après l'imageUrl comme ceci:
$('myOjbect').css('background-image', 'url("' + imageUrl + '")');
Ainsi, si l'image contient des espaces, elle sera toujours définie comme propriété.
En guise d'alternative à ce que les autres suggèrent correctement, il est généralement plus facile de basculer les classes CSS au lieu de définir des paramètres CSS individuels (en particulier les URL d'image de fond). Par exemple:
// 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');
Voici mon code:
$ ('body'). css ('background-image', 'url ("/ apo/1.jpg")');
Profitez, mon ami
Outre les autres réponses, vous pouvez également utiliser "arrière-plan". Ceci est particulièrement utile lorsque vous souhaitez définir d'autres propriétés relatives à la manière dont l'image est utilisée par l'arrière-plan, telles que:
$("myObject").css("background", "transparent url('"+imageURL+"') no-repeat right top");
Pour ceux qui utilisent une URL réelle et non une variable:
$('myObject').css('background-image', 'url(../../example/url.html)');
Essayez de modifier l'attribut "style":
$('myObject').attr('style', 'background-image: url("' + imageUrl +'")');
Interpolation de chaînes à la rescousse.
let imageUrl = 'imageurl.png';
$('myOjbect').css('background-image', `url(${imageUrl})`);
Le problème que j’avais, c’est que j’ajoutais un point-virgule ;
à la fin de la valeur url()
, ce qui empêchait le code de fonctionner.
PAS DE CODE DE TRAVAIL:
$('#image_element').css('background-image', 'url(http://example.com/img.jpg);');
CODE DE TRAVAIL:
$('#image_element').css('background-image', 'url(http://example.com/img.jpg)');
Notez le point-virgule omis ;
à la fin du code de travail. Je ne connaissais tout simplement pas la syntaxe correcte, et il est vraiment difficile de la remarquer. Espérons que cela aide quelqu'un d'autre dans le même bateau.