Jquery if语句的背景图像不起作用

时间:2018-02-27 14:06:34

标签: jquery

我有条件:

console.log(jQuery(".sl-slide:visible .bg-img").css("background-image"));

if(jQuery(".sl-slide:visible .bg-img").css("background-image") == "url(http://pacificolife.com/wp-content/uploads/2016/08/bw1-1.jpg)")
{
    console.log("Here");
}

但是当背景等于该网址时,没有任何反应。我做错了什么?

1 个答案:

答案 0 :(得分:1)

那是因为那些不是相同的字符串:

var background = jQuery(".sl-slide:visible .bg-img").css("background-image"))

如果您这样做,background的值为url("http://pacificolife.com/wp-content/uploads/2016/08/bw1-1.jpg")

无论你的css文件是否写得:

.sl-slide:visible .bg-img {
  /* with '' */
  background-image: url("http://pacificolife.com/wp-content/uploads/2016/08/bw1-1.jpg");
  /* without '' */
  background-image: url(http://pacificolife.com/wp-content/uploads/2016/08/bw1-1.jpg);
}

输出将始终相同。

<强>解决方案

  1. 使用完全相同的字符串进行比较
  2. 删除网址()。基于this answer
  3. 代码:

    var bg = jQuery(".sl-slide:visible .bg-img").css("background-image")); 
    var url = bg.replace(/(?:^url\(["']?|["']?\)$)/g, "");
    console.log(url === 'http://pacificolife.com/wp-content/uploads/2016/08/bw1-1.jpg');
    // true
    

    选中此fiddle