我希望表格的选定行具有某种背景色。 我的表是条纹的,仅适用于白色行。我正在使用datatables.net。
如果选择的话,我希望灰色行与白色行具有相同的颜色。但是使用此代码,单击一下即可将白色行变成灰色。但是,如果我仅使用第一个if else块,则它适用于白色行。我在做什么错了?
if (this.style.background == 'white') {
$(this).css('background', '#cce6ff');
} else {
$(this).css('background', 'white');
}
if (this.style.background == 'lightgrey' && this.style.background != 'white') {
$(this).css('background', '#cce6ff');
} else if (this.style.background != 'white') {
$(this).css('background', 'lightgrey');
}
这也不起作用:
if (this.style.background == 'white'){
$(this).css('background', '#b6c7db');
break;
}else{
$(this).css('background', 'white');
break;
}
if (this.style.background == 'lightgrey' && this.style.background != 'white'){
$(this).css('background', '#cce6ff');
}else if (this.style.background != 'white'){
$(this).css('background', 'lightgrey');}
答案 0 :(得分:0)
您需要确保this
实际上指向该行。如果没有,则需要对其进行调整以定位该行。
也就是说,假设数据表已经将选定的类添加到行中,则可以使用CSS对其进行定位。
然后,如果上述方法仍然无效,则很有可能需要使用!important
来强制使用该值,这无疑会被其他地方覆盖
方法2 :
您应该使用已有的CSS规则执行此操作,并避免检查当前颜色。选择后,从所有行中删除selected
类,然后将其切换到所选的行上。
您的代码是否在点击处理程序中?您的第二个片段中有break
条语句,此代码是否在循环中?我觉得您对条件语句有一些误解,但是我很难理解这些代码段试图达到的目的-例如,this.style.background == 'lightgrey' && this.style.background != 'white'
不必要地冗长,如果背景等于lightgrey
,则它不会等于white
,则可以删除第二个比较。