使用属性以选择器结束添加类

时间:2015-06-22 07:06:12

标签: jquery css jquery-selectors attributes

我正在尝试根据页面的background-image更改字体的颜色。

我查看了我能找到的有关此内容的每个帖子,但我无法弄清楚我的具体应用程序的正确语法。

我正在尝试编写一个函数,上面写着“如果background-image的{​​{1}}以”-dark.png结尾“将类body添加到.dark

这就是我所拥有的:

nav

我感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

$==运算符在JS中无效。要查明字符串是否以特定字符集结尾,您可以使用正则表达式:

function colorChange(){
    var b = $('body').css('background-image');
    if (b.test(/-dark.png$/i)) {
        $("nav").addClass("dark");
    }
}

substr()

function colorChange(){
    var b = $('body').css('background-image');
    var match = '-dark.png';
    if (b.length > match.length && b.substr(-match.length) == match) {
        $("nav").addClass("dark");
    }
}

答案 1 :(得分:0)

您需要使用正则表达式:

function colorChange(){
    var b = $('body').css('background-image');
    if(b.match(/-dark.png"\)$/)){
        $("nav").addClass("dark");
    }
}

我在"\)之前添加了$,因为这就是此字符串(网址)结束的方式。

答案 2 :(得分:0)

我认为您不能使用结尾,因为图片网址会被url()包裹,因此您可以查看indexOf()

function colorChange() {
    var b = $('body').css('background-image');

    if (b.indexOf('-dark.png') > -1) {
        $("nav").addClass("dark");
    }
}

答案 3 :(得分:0)

Hello Mark Pfaff,你好                根据我对你的问题的理解,这是你的答案,它可以解决你的目的

      function colorChange(){
            var b = $('body').css('background-image');
            b = b.replace('url("','').replace('")','');
            b = b.substr(b.lastIndexOf('/') + 1);
            if (b === 'dark.png'){
                $('nav').addClass("dark");
            }
        }

希望它会帮助你..