我需要使用 jQuery 获取元素背景图像的 URL:
var foo = $('#id').css('background-image');
这会产生类似 url("http://www.example.com/image.gif")
的结果。我怎样才能从中得到“http://www.example.com/image.gif”部分? typeof foo
说它是一个字符串,但是 url()
部分让我认为 JavaScript 和/或 jQuery 有一个特殊的 URL 类型,我应该能够获得使用 foo.toString()
定位。但这不起作用。
最佳答案
请注意,不同的浏览器实现可能会以不同的格式返回字符串。例如,一个浏览器可能返回双引号,而另一浏览器可能返回不带引号的值。这使得解析变得很困难,尤其是当您认为引号作为 URL 字符有效时。
我想说最好的方法是一个好的旧检查和slice()
:
var imageUrlString = $('#id').css('background-image'),
quote = imageUrlString.charAt(4),
result;
if (quote == "'" || quote == '"')
result = imageUrlString.slice(5, -2);
else
result = imageUrlString.slice(4, -1);
假设浏览器返回一个有效的字符串,这不会失败。即使返回空字符串(即没有背景图像),结果也是空字符串。
关于javascript - 如何从 url ("http://www.example.com"中提取 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065436/