Javascript代码在Mozilla Firefox中运行,但在Google Chrome中运行

时间:2014-12-18 11:09:52

标签: javascript jquery html google-chrome firefox

我的javascript代码遇到了一个小问题。事实上,它在Firefox中工作但在Chrome中没有,你知道我为什么要面对这个问题吗?

这是我的代码:

$('a').each(function(){
   if($(this).css('background-image')=='url("linktothepng.png")'){
       $(this).parent().remove();
   } 
});

感谢您帮助我,祝您有个美好的一天;)

2 个答案:

答案 0 :(得分:3)

chrome会将其设为url(linktothepng.png)(无引号)

浏览器解析css并以自己的方式对其进行格式化,不建议在这些属性上进行文本匹配,只需使用具有该背景的类并与hasClass()一起检查以防止出现不一致

答案 1 :(得分:1)

css('background-image')返回的值可以通过不同的浏览器以不同的方式标准化;只要它们是等效的CSS,它们都是有效的。

您可以测试css('background-image').indexOf('linktothepng.png') != -1哪个可行,假设没有其他图像正在使用linktothepng.png作为其名称的一部分(这将需要更复杂的测试)。

如果可能的话,你最好只设置一个类来设置背景图像。

  1. 更容易改变。
  2. 将您归于该图像的含义与图像是您表示图像的方式分开。
  3. 更快找到,而不是将测试替换为类似if($(this).hasClass('the-class-you-use')的内容,删除测试并将选择器更改为$('a.the-class-you-use')