将 CSS 应用于具有下一页的数据表

Applying CSS to Datatables that has NEXT Page

我有这个脚本可以工作并且可以满足我的需要,但它只适用于前 10 行,不适用于下一页。 我的 Table id 是“MyTable” 这是我的 JavaScript:

                $(document).ready(function()
                            {
                                $(function() 
                                    {
                                      $("#MyTable td").each(function() 
                                      {
                                        if ($(this).text() == 'Pending') 
                                            {
                                              $(this).css('background-color', 
                '#F3E498');
                                            }
                                        if ($(this).text() == 'Approved') 
                                            {
                                              $(this).css('background-color', 
                '#C5F97E');
                                            }
                                        if ($(this).text() == 'Denied') 
                                            {
                                              $(this).css('background-color', 
                '#FF5733');
                                            }
                                        
                                      });
                                    });
                            });

所以不用说我卡在了第 11 行,我的脚本在接下来的几页中停止工作,我将不胜感激任何建议。 See Image here

只有数据表中可见的行实际上在 DOM 中。因此,您可以在每次页面更改时调用 $.each 循环,或者(我认为更好)使用 https://datatables.net/reference/option/createdRow or https://datatables.net/reference/option/columns.createdCell

这是一个有效的 JSFiddle:https://jsfiddle.net/dhqcekm9/

CSS

.approved {
  background-color: #C5F97E;
}

.denied {
  background-color: #FF5733;
}

.pending {
  background-color: #F3E498;
}

HTML

<table id="table">
  <thead>
    <th>ID</th>
    <th>Status</th>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Approved</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Denied</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Approved</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>5</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>6</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>7</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>8</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>9</td>
      <td>Denied</td>
    </tr>
    <tr>
      <td>10</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>11</td>
      <td>Pending</td>
    </tr>
    <tr>
      <td>12</td>
      <td>Approved</td>
    </tr>
    <tr>
      <td>13</td>
      <td>Denied</td>
    </tr>
  </tbody>
</table>

Javascript

$('#table').dataTable({
  'columnDefs': [{
    'targets': 1,
    'createdCell': function(td, cellData, rowData, row, col) {
      switch (cellData) {
        case 'Approved':
          $(td).addClass('approved');
          break;
        case 'Denied':
          $(td).addClass('denied');
          break;
        case 'Pending':
          $(td).addClass('pending');
          break;
      }
    }
  }]
});