【问题标题】:coffeescript and jquery producing complete url for background image?coffeescript 和 jquery 为背景图片生成完整的 url?
【发布时间】:2013-03-09 20:54:11
【问题描述】:

我正在尝试使用 coffeescript 和 jquery 设置 div 的背景图像。我从 DOM 中的数据源以 /images/album_image1.jpg 的形式获取图像 url。

但是,当我使用:

$('.selector').css({'backgroundImage', "url(#{image_url}"})

CoffeeScript/jQuery 生成带有主机的 URL:

url(http://host.com/images/album_image1.jpg)

此外,Firefox 会将 URL 括在引号中,而 Chrome 不会引用 URL。

请看这里:JSBin

我想得到结果url(/images/album_image1.jpg),即没有主机部分和引号。我希望得到后者的结果,以便通过我使用 Jasmine 的测试。

【问题讨论】:

    标签: javascript jquery coffeescript jasmine


    【解决方案1】:

    好吧,因为你是 javascipt,所以你想用'+something+' 输出文本,所以:

     var image_url = $('img').data('img');
     image_url = str.split(".com"); //split returns an array of everything after the regex: .com
     image_url = image_url[1];
     $('.selector').css('backgroundImage', "url("+image_url+")");
    

    编辑

     So if you want to remove the leading url from the returned string you would use split:
    
     var str = 'http://jsbin.com/images/image_album1.jpg'
     str = 
     image_url = str.split(".com"); //split returns an array of everything after the regex: .com
     str[1]; ///images/image_album1.jpg
    

    希望这有帮助吗?但我也更新了上述内容,因此对您的情况很有帮助。

    【讨论】:

    • 不确定这个答案是否有用,而不是你的小提琴在那里。以前没有工作。成为小提琴中的输出文本看起来不错。
    • "url("+image_url+")" 产生与咖啡脚本中的"url(#{image_url})" 相同的输出(使用插值)。
    • ye,正如我在你的小提琴中看到的,你得到了正确的输出。
    • 没有主机部分是否无法获取 URL,即 url(/images/album_image.jpg),afaik 是有效的 css 吗?
    • 确定是的。一旦你有了它,就把它切开。我会更新,之后你可以玩。
    猜你喜欢
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    相关资源
    最近更新 更多