JS Script не меняет цвет фона строки таблицы - PullRequest
0 голосов
/ 17 мая 2018

Итак, во-первых, у меня есть 2 таблицы. При щелчке строки в главной таблице открывается модальное окно с дополнительной таблицей. Вторичная таблица содержит столбец даты. Если дата равна "1111-11-11 / 11:11:11", это означает, что есть ошибка, и поэтому цвет фона строки должен быть переключен на красный.

Вот код для открытия модального окна после щелчка строки в первой таблице:

$(document).on('click', '#main-table tbody tr', function () {
  var id = $(this).find("td").eq(0).text();
  openPoolModal(id);
});

Ничего сложного. Функция openPoolModal - это то, где я печатаю дату на консоль, а также пытаюсь изменить цвет.

function openPoolModal(id){

$.ajax({
url: "/" + id,
success: function(data){
$("#PoolModalHolder").html(data);
$("#personalModal").modal();
$("#personalModal").modal('show');
$('#poolTable').DataTable({
        some DataTables settings;
});
}
});

$("#poolTable tr").each(function(){
  var col_val = $(this).find("td").eq(1).text();

    console.log(col_val);

      if (col_val == "1111-11-11 / 11:11:11"){
     $(this).css( "background-color", "yellow" );
  }
});
}

И HTML-код, возвращаемый при вызове ajax:

<div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title text-center" th:text="'Network: ' + ${poolHashrates[0].networkHashrate.id}">Network Id</h4>
        </div>
        <div class="modal-body">
            <div class="table-responsive">
                <table width="100%" class="table table-hover " id="poolTable">

                    <thead class="thead-inverse">
                    <tr>
                        <th class="col-md-2 text-center">Pool name</th>
                        <th class="col-md-2 text-center">Date from</th>
                        <th class="col-md-2 text-center">Hashrate [KH/s]</th>
                    </tr>
                    </thead>

                    <tbody>
                    <tr th:each="poolHashrate : ${poolHashrates}">
                        <td class="text-center" th:text="${poolHashrate.poolDef.name}"> Sample data</td>
                        <td class="text-center" th:text="${@getDataService.formatDate(poolHashrate.poolDef.dateFrom)}">Maven Street 10, Glasgow</td>
                        <td class="text-center" th:text="${@getDataService.formatHashrate(poolHashrate.hashrate)}">999-999-999</td>
                    </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

Итак, сейчас есть две проблемы, с которыми я сталкиваюсь. Во-первых, после первого щелчка по строке mainTable ничего не происходит. Когда я нажимаю второй раз, дата первого щелчка печатается в консоли. Когда я нажимаю в третий раз, печатается дата второго щелчка и так далее.

Вторая проблема заключается в том, что:

$(this).css( "background-color", "yellow" );

... кажется, не работает, поскольку не окрашивает фон.

1 Ответ

0 голосов
/ 17 мая 2018

используйте как показано ниже

$(this).css( "background", "yellow" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...