jQuery数据表行背景颜色在排序列中没有改变

Posted

技术标签:

【中文标题】jQuery数据表行背景颜色在排序列中没有改变【英文标题】:jQuery datatable row background color not changing in sorted column 【发布时间】:2020-11-11 10:48:34 【问题描述】:

我正在使用 jQuery 数据表,我希望根据条件更改背景颜色,将已排序的行悬停在我的图像上没有我的背景颜色。

这是我的条件

        "rowCallback": function (row, data, index) 
            if (data.componente.default_ubicacion.ubicacion_id === 0) 
                $(row).css("background-color", "rgb(225, 27, 27, 100%)");
                $(row).css("color", "white");
                $(row).addClass("group");
            
        ,

这是导致问题的 css

table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 
    background-color: #f1f1f1;


table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 
    background-color: #fafafa;

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

试试这个:

"rowCallback": function (row, data, index) 
        if (data.componente.default_ubicacion.ubicacion_id === 0) 
            $(row).css("background-color", "rgb(225, 27, 27, 100%)");
            $(row).css("color", "white");
            $(row).addClass("yourClassName");
        
    

然后在您的 CSS 文件中包含以下内容:

table.dataTable.display tbody tr.yourClassName.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.yourClassName.even > .sorting_1 
    background-color: transparent;


table.dataTable.display tbody tr.yourClassName.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.yourClassName.odd > .sorting_1 
    background-color: transparent;

显然我不知道你的数据,但我为你准备了一个小例子:

var oTable = $('#tableName').DataTable( 
    rowCallback: function(row, data, index)
    if(data[0] == 2)
        $(row).css('background-color', 'rgb(225, 27, 27, 100%)')
            .css('color', 'white')
            .addClass('yourClassName');
    
  
);
table.dataTable.display tbody tr.yourClassName.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.yourClassName.even > .sorting_1 
    background-color: transparent;


table.dataTable.display tbody tr.yourClassName.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.yourClassName.odd > .sorting_1 
    background-color: transparent;
<link href="https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>

<div class="data-table-container">
  <table id="tableName" class="table cell-border order-column stripe">
   <thead>
    <tr>
        <th>Rank</th>
        <th>Country</th>
        <th>Code</th>
        <th>Total</th>
        <th>Beer</th>
        <th>Wine</th>
        <th>Spirits</th>
        <th>Other</th>
        <th>Score</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>1</td>
        <td>Estonia</td>
        <td>EE</td>
        <td>14.97</td>
        <td>5.87</td>
        <td>1.65</td>
        <td>5.64</td>
        <td>1.81</td>
        <td>3 - Medium Risky</td>
    </tr>
    <tr>
        <td>2</td>
        <td>Belarus</td>
        <td>BY</td>
        <td>14.44</td>
        <td>2.5</td>
        <td>0.75</td>
        <td>6.73</td>
        <td>4.46</td>
        <td>4 - Very Risky</td>
    </tr>
  </table>
</div>

【讨论】:

以上是关于jQuery数据表行背景颜色在排序列中没有改变的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 更改 ASP:GridView 行的背景颜色

Qt5:如何改变表格中一行的背景颜色,使其在排序时自动移动?

如何根据列中的某个值为 ag 网格中的整行提供背景颜色?

jquery ui可排序占位符无法更改背景颜色

jquery 的animate()方法可以改变背景颜色么?

VB2010中datagridview行标题及列标题如何改变背景色