用户点击表格行后,我希望它检查表格行的背景颜色是否为白色,如果是,则会将颜色更改为浅蓝色。
我使用的代码无效。这是:
$("#tracker_table tr#master").click(function(){
if($(this).css("background-color") == "#FFFFFF") {
$(this).css("background-color", "#C2DAEF");
}
});
我认为我的if语句有问题。如何使用jQuery检查css值?
答案 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