У меня есть таблица html, и я хочу покрасить строки на основе значения в первом столбце этой строки. Если значение «ПОДТВЕРЖДЕНО», я хочу, чтобы цвет был зеленым, и если он «НЕОПРЕДЕЛЕН», я хочу покрасить строку красным цветом.Строка таблицы цветов на основе значения столбца
JS я использую, чтобы сделать это:
$(function(){
$("tr").each(function(){
var col_val = $(this).find("td:eq(1)").text();
if (col_val == "CONFIRMED"){
$(this).addClass('selected'); //the selected class colors the row green//
} else {
$(this).addClass('bad');
}
});
});
CSS-выглядит следующим образом:
.selected {
background-color: green;
color: #FFF;
}
.bad {
background-color: red;
color: #FFF;
}
таблица HTML генерируется из панд dataframe на мой взгляд, Джанго и прошел в например:
<div class="table-responsive" style="margin-left: 15%; margin-right: 15%; overflow:auto;">
{{ datatable | safe }}
</div>
Проблема в том, что она окрашивает все мои ряды красным цветом. Может ли кто-нибудь сказать мне, что я делаю неправильно?
Вы можете разместить CSS и HTML? – tcigrand
eq основан на 0, поэтому вы должны использовать 'find (" td: eq (0) ")', чтобы получить первый столбец –
@BenMansley. Первый столбец таблицы на самом деле является индексом. Когда я печатал '$ (this) .find (" td: eq (1) "). Text()' в консоль отображал правильное значение для каждой строки. – kdubs