替换背景图像javascript [重复]

Posted

技术标签:

【中文标题】替换背景图像javascript [重复]【英文标题】:Replacing background image javascript [duplicate] 【发布时间】:2016-03-23 08:45:19 【问题描述】:

有没有办法用 javascript 改变背景图像的样式?我目前有:

if($(".stLarge").attr.backgroundImage = "http://w.sharethis.com/images/facebook_32.png") 

      console.log('hello');
      $('.stLarge[backgroundImage="http://w.sharethis.com/images/facebook_32.png"]').attr("backgroundImage", "url(/images/facebook.png)";
     

它进入 if 语句但不执行图像更改。知道我做错了什么吗?提前致谢

【问题讨论】:

您的更改是从背景图像开始的吗? 【参考方案1】:

BackgroundImage 是元素对象中style 对象的属性,而不是属性。您可以使用 jQuery .css() 方法更改和读取 css 属性。

var imgUrls = ['http://w.sharethis.com/images/facebook_32.png', '/images/facebook.png']
var $jq = $(".stLarge");
if($jq.css('background-image').indexOf(imgUrls[0]) > -1)
   $jq.css('background-image', 'url("' + imgUrls[1] + '")');

【讨论】:

【参考方案2】:

语法错误和 jQuery 的误用。这样做:

$('.stLarge').each(i, e)
  if($(e).css('backgroundImage').match(/url\(('|")?https?\:\/\/w\.sharethis\.com\/images\/facebook_32\.png(\1)?\)/))
    $(e).css('backgroundImage', "url('/images/facebook.png')");
  
 

【讨论】:

【参考方案3】:

我认为没有背景图片的属性,你需要使用css

$('.stLarge[style*="background-image: url(http://w.sharethis.com/images/facebook_32.png)"]').css("background-image", "url(/images/facebook.png)");

jQuery - css() Method

【讨论】:

以上是关于替换背景图像javascript [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果资源可用且有效,则替换图像[重复]

柔化javascript画布图像中的边缘

在Javascript中使用来自图像的href = mailto链接[重复]

是否可以使用 javascript 和/或 css 修改背景 svg 图像?

定位视频并使其像图像一样在背景中重复

javascript或jquery在不同的按钮点击上更改不同的图像[重复]