Установка фонового изображения с помощью свойства jQuery CSS - PullRequest
352 голосов
/ 04 февраля 2009

У меня есть URL изображения в переменной imageUrl, и я пытаюсь установить его как стиль CSS, используя jQuery:

$('myObject').css('background-image', imageUrl);

Это, кажется, не работает, как:

console.log($('myObject').css('background-image'));

возвращает none.

Есть идеи, что я делаю не так?

Ответы [ 9 ]

882 голосов
/ 04 февраля 2009

Вы, вероятно, хотите это (чтобы это было похоже на обычное объявление CSS-фона):

$('myObject').css('background-image', 'url(' + imageUrl + ')');
67 голосов
/ 10 марта 2011

Вы хотите включить двойные кавычки (") до и после imageUrl, например:

$('myOjbect').css('background-image', 'url("' + imageUrl + '")');

Таким образом, если у изображения есть пробелы, оно все равно будет установлено как свойство.

46 голосов
/ 02 июля 2011

В качестве альтернативы тому, что правильно предлагают другие, мне обычно проще переключать классы CSS, а не отдельные настройки CSS (особенно URL-адреса фонового изображения). Например:

// 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');
15 голосов
/ 02 июля 2011

Вот мой код:

$('body').css('background-image', 'url("/apo/1.jpg")');

Наслаждайся, друг

13 голосов
/ 27 февраля 2013

В дополнение к другим ответам, вы также можете использовать «фон». Это особенно полезно, когда вы хотите установить другие свойства, связанные с тем, как изображение используется фоном, например:

$("myObject").css("background", "transparent url('"+imageURL+"') no-repeat right top");
6 голосов
/ 01 октября 2013

Для тех, кто использует реальный URL, а не переменную:

$('myObject').css('background-image', 'url(../../example/url.html)');
3 голосов
/ 29 мая 2017

Попробуйте изменить атрибут "style":

$('myObject').attr('style', 'background-image: url("' + imageUrl +'")');
2 голосов
/ 18 февраля 2017

Строковая интерполяция для спасения.

let imageUrl = 'imageurl.png';
$('myOjbect').css('background-image', `url(${imageUrl})`);
0 голосов
/ 03 августа 2017
$('myObject').css({'background-image': 'url(imgUrl)',});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...