使用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术语中