【问题标题】:How to change a div background image?如何更改 div 背景图像?
【发布时间】:2017-05-07 11:46:17
【问题描述】:

愿我们所有人平安与祝福。

基本上我有一个 div 说:

<div class="divele" style="background: url("/image/bkimg.jpg") top center no-repeat;background-size:cover;"></div>

然后我有一个上传按钮,用户可以从他/她的计算机中选择图像并将其保存在数据库中。在保存文件的 XHR 响应之后。服务器响应与/image/bkimg.jpg 相同的新图像链接,这次旧图像已替换为新上传的图像。现在我需要 div 从服务器重新请求新图像。这就是我正在做的事情:

var parts = result;
$('.divele').css({"background": "url("+parts+") top center no-repeat", "background-size": "cover"});

不知道为什么但是这不会加载新图像。

非常感谢

【问题讨论】:

  • 如果您使用浏览器的开发工具检查 div,如果出现错误,您应该会在其中看到一些内容。您还可以检查“网络”选项卡以验证是否/如何请求图像。
  • 这适用于图像标签,但如果使用内联,我们需要完整路径。检查背景图像属性
  • 希望对您有所帮助:- stackoverflow.com/questions/34119048/…
  • 好吧,我想通了,因为新旧链接都和/image/bkimg.jpg/一样。它不请求新图像。你知道如何强制请求新图像吗?
  • 在末尾添加缓存破坏器。图片.png?buster123456

标签: javascript jquery html


【解决方案1】:

感谢这个答案:How to reload/refresh an element(image) in jQuery

这说明,因为两个名称相同,浏览器使用缓存版本,为了修复它,您可以简单地添加一个额外的不必要的参数,如下所示:

d = new Date();
$('.divele').css({"background-image": "url("+result+"?"+d.getTime()+")"}); 

【讨论】: