使用jQuery获取div的背景图像。是否有内置方法去除url()部分?

时间:2009-05-08 00:26:54

标签: javascript jquery

我正在使用此代码获取div的背景图片。

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

这将返回url%28http://example.com/images/layout/content-trans.png%29

我知道你可以element.height()来获取元素的高度而不附加pxparseInt()也可以),所以我想知道是否有类似的方法让jQuery获得实际背景图片减去url()元数据。

我想我可以使用正则表达式,比如/url\((.*)\)/,但我宁愿先知道是否有内置方法。

4 个答案:

答案 0 :(得分:18)

url()是background-image值的一部分,所以我想你需要使用正则表达式替换。

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

参考:http://groups.google.com/group/jquery-en/browse_thread/thread/d866997cb206b35f

答案 1 :(得分:0)

类似的东西:

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

纯JS术语

答案 2 :(得分:0)

这个简单的解决方案怎么样:

bgImage.slice(bgImage.lastIndexOf('/')+1, bgImage.length - 3)

答案 3 :(得分:0)

var url = /url\(\s*(['"]?)(.*?)\1\s*\)/g.exec(str)[2];

取自waitForImages jQuery plugin。我也是作者。