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

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

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

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

我知道你可以做element.height()来获得没有附加px的元素高度( parseInt()也可以),所以我想知道是否有一个类似的方法让jQuery获得实际的背景图像减去url()元数据数据。

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

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

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

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

这个简单的解决方案如何:

 bgImage.slice(bgImage.lastIndexOf('/')+1, bgImage.length - 3) 
 var url = /url\(\s*(['"]?)(.*?)\1\s*\)/g.exec(str)[2]; 

取自waitForImages jQuery插件 。 我也是作者。

就像是:

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

在纯JS术语中