条纹表的选定行颜色

时间:2019-05-20 09:28:52

标签: javascript jquery css model-view-controller datatable

我希望表格的选定行具有某种背景色。 我的表是条纹的,仅适用于白色行。我正在使用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');}

1 个答案:

答案 0 :(得分:0)

您需要确保this实际上指向该行。如果没有,则需要对其进行调整以定位该行。

也就是说,假设数据表已经将选定的类添加到行中,则可以使用CSS对其进行定位。

然后,如果上述方法仍然无效,则很有可能需要使用!important来强制使用该值,这无疑会被其他地方覆盖

方法2 : 您应该使用已有的CSS规则执行此操作,并避免检查当前颜色。选择后,从所有行中删除selected类,然后将其切换到所选的行上。

您的代码是否在点击处理程序中?您的第二个片段中有break条语句,此代码是否在循环中?我觉得您对条件语句有一些误解,但是我很难理解这些代码段试图达到的目的-例如,this.style.background == 'lightgrey' && this.style.background != 'white'不必要地冗长,如果背景等于lightgrey,则它不会等于white,则可以删除第二个比较。