Получение фонового изображения div с помощью jQuery. Есть ли встроенный метод для удаления части url ()? - PullRequest
8 голосов
/ 08 мая 2009

Я использую этот код для получения фонового изображения div.

var bgImage = $('#content').css('backgroundImage');

Это возвращается url%28http://example.com/images/layout/content-trans.png%29

Я знаю, что вы можете сделать element.height(), чтобы получить высоту элемента без добавления px (parseInt() также работает), поэтому мне было интересно, был ли подобный метод для jQuery, чтобы получить фактическое фоновое изображение минус url() метаданные.

Полагаю, я мог бы использовать регулярное выражение, что-то вроде /url\((.*)\)/, но я бы лучше сначала узнал, есть ли встроенный способ.

Ответы [ 4 ]

18 голосов
/ 08 мая 2009

url () является частью значения background-image, поэтому я думаю, вам нужно использовать регулярное выражение замены.

var bgImage = $('#content').css('background-image').replace(/^url|[\(\)]/g, ''); 

Ссылка: http://groups.google.com/group/jquery-en/browse_thread/thread/d866997cb206b35f

0 голосов
/ 13 мая 2013
var url = /url\(\s*(['"]?)(.*?)\1\s*\)/g.exec(str)[2];

Взято из плагина jQuery waitForImages . Я тоже автор.

0 голосов
/ 08 мая 2009

как насчет этого простого решения:

bgImage.slice(bgImage.lastIndexOf('/')+1, bgImage.length - 3)
0 голосов
/ 08 мая 2009

Что-то вроде:

var imgUrl = 'http://example.com/images/layout/image.png';
var i = imgUrl.lastIndexOf("/"); 
var filename = imgUrl.substring(i, imgUrl.length - 1);
alert(filename); 

В чистом виде JS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...