Jquery css比较背景颜色值

时间:2013-02-08 10:22:00

标签: jquery

我有img。单击它会检查其父级的背景颜色,如果是白色则将背景颜色切换为灰色,如果是灰色则将其切换为白色。这里k的值是rgb(255,255,255)(白色),但if循环可以被执行但是其他部分执行...意味着如果不能正常工作......在我的代码中,当我执行它时会发生什么....只有部分有时才会执行,当我改变某些东西时它只会执行其他部分....即使条件不满足......就像白色和白色当它是灰色时应该变灰...但它没有。 ...我想问一下我用过的情况......是否正确......

function havetotha(it) {
    var k = $(it).parent().css('background-color');
    $('#message').html(k);
    if (k == 'white') {
        $(it).parent().css('backgroundcolor','grey');
    }
    else {
        $(it).parent().css('backgroundcolor','white');
    }
}

我想通了......

in if if condition in comparison($(it).parent()。css('background-color')==“rgb(255,255,255)”)....其中rgb(255,255,255)是字符串但$ (它).parent()。css('background-color')它不是字符串所以....我使用了一个技巧我做了两个div一个与灰色背景和其他与白色....并比较背景与我的元素....它只需要很长时间才能进入我的脑海......

2 个答案:

答案 0 :(得分:2)

请指定问题... Chage backgroundcolor为background-color .. 您可以按如下方式优化代码:

function havetotha(it) {
   var k = $(it).parent()
   $('#message').html(k);
   if (k.css('background-colour') == "white") {
      k.css('background-color','grey');
   }
   else if (k.css('background-colour') == "grey")({
      k.css('background-color','white');
   }
}

该行的目的是什么:

  

$( '#消息'),HTML(K);

答案 1 :(得分:0)

k应该在函数返回之前声明,或者将结果返回到全局变量,如下所示:

function havetotha(it) { return $(it).parent().css('background-color');}
k = havetotha(it);
//rest of the code