如何使用jQuery检查css值?

时间:2010-05-31 03:24:52

标签: jquery css

用户点击表格行后,我希望它检查表格行的背景颜色是否为白色,如果是,则会将颜色更改为浅蓝色。

我使用的代码无效。这是:

$("#tracker_table tr#master").click(function(){
  if($(this).css("background-color") == "#FFFFFF") { 
    $(this).css("background-color", "#C2DAEF");
  }
});

我认为我的if语句有问题。如何使用jQuery检查css值?

3 个答案:

答案 0 :(得分:22)

看起来它以rgb(x, y, z)的形式返回,因此您的代码应为:

$("#tracker_table tr#master").click(function(){
  if($(this).css("background-color") == "rgb(255, 255, 255)") { 
    $(this).css("background-color", "#C2DAEF");
  }
});

编辑:话虽如此,我建议您使用类而不是直接检查/设置css属性。像这样:

$("#tracker_table tr#master").click(function(){
  if(!$(this).hasClass("selected")) { 
    $(this).addClass("selected");
  }
});

的CSS:

tr { background-color: #FFFFFF; }
tr.selected { background-color: #C2DAEF; }

答案 1 :(得分:3)

虽然这可能有效,但实际上您是以颜色的形式存储信息,然后在以后检索和比较这些信息。 Alconja提出了一种可行的方法,但最终你可能会更好地使用类,其名称可以由您定义以具有适当的含义。有这样的东西更友好,更脆弱:

$('#tracker_table tr#master').click( function(){
    if ( $(this).hasClass('something') ) {
        $(this).removeClass('something').addClass('something_else');
    }
})

答案 2 :(得分:0)

如果您使用的是本地javascript,则可以尝试

document.getElementById("#SELECTOR").style.("STYLE_PROPERTY") == VALUE;

如果您使用的是jQuery,则可以尝试类似的

$("#SELECTOR").css("STYLE_PROPERTY") == VALUE_TO_MATCH