addClass(); jQuery函数在Firefox中不起作用

Dan*_*per 1 javascript firefox jquery addclass

我有一个脚本,body从一个名为的目录中为我的文档元素选择一个随机背景图像bg-images.如果所选背景图像在图像文件名中有"_dark",我想在body元素中添加一个特殊类.

这是我正在使用的jQuery.它在Chrome和Safari中运行良好,但在Firefox中无效:

    var backgroundImage = $('body').css('background');
    var isitdark = "_dark";

    if (backgroundImage.indexOf( isitdark ) != -1 ) {
        $('body').addClass("dark");
    } else {
        $('body').removeClass("dark");
    }
Run Code Online (Sandbox Code Playgroud)

为什么在Firefox中没有做任何事情?有没有更好的写作方式?

我已经尝试添加"type=text/javascript"到我的所有脚本标签,但这似乎没有帮助,我的网站上的其余jQuery在所有浏览器中都能正常工作.

Pop*_*les 5

您没有$('body').css('background');使用"使用" 获取背景图像.css('background-image')

var backgroundImage = $('body').css('background-image');
Run Code Online (Sandbox Code Playgroud)

这不是必要的,因为字符串_dark将会或不会在那里,但如果你想,你可以删除url()url("")

var backgroundImage = /url\(\s*(['"]?)(.*?)\1\s*\)/g.exec($('body').css('background-image'))[2];
Run Code Online (Sandbox Code Playgroud)

在FF中工作正常

http://jsfiddle.net/mNX3A/