Я создаю систему отслеживания ошибок в качестве проекта для изучения Node.js. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу изменить цвет фона строки таблицы (на снимке экрана ниже) в соответствии со значением состояния (как для ОТКРЫТОГО, я хочу красный цвет, зеленый для закрытого и т.д.).
<table class="table">
<thead>
<tr>
<th>Project</th>
<th>Status</th>
<th>Date Created</th>
<th>Bug</th>
<!-- -->
<th>Description</th>
<th>Date Solved</th>
</tr>
</thead>
<tbody>
<% bugs.forEach(function(bugs){ %>
<tr id ="color">
<td><a style="text-decoration:none" href="/"><%= bugs.projectName%></a></td>
<td><%= bugs.status %>
<% if (bugs.status === "OPEN") { %>
<% document.getElementById("color").style.color = "green"; %>
<% } %>
</td>
<td><%= bugs.dateCreated %></td>
<td><a style="text-decoration:none; color : #000;" href="/bugs/<%= bugs._id %>"><%= bugs.title %></a></td>
<td><a style="text-decoration:none; color : #000;" href="/bugs/<%= bugs._id %>"><%= (bugs.description).substr(0, 40) %></a></td>
<td><%= bugs.dateSolved %></td>
</tr>
<% }); %>
</tbody>
</table>
Произошла ошибка:
EJS отображается на сервере, а не в браузере, поэтому EJS не имеет представления, что это за document
, поскольку он определен только в браузере.
Вы можете решить свою проблему, используя встроенные стили, аналогичные тем, что сделал Дэн в своем ответе выше.
У вашего <tr>
не должно быть id
поскольку он, вероятно, повторяется на вашей странице несколько раз. Я считаю, что class
будет более подходящим здесь. Больше информации о различиях между идентификаторами и классами https://css-tricks.com/the-difference-between-id-and-class/.
Я думаю, что-то вроде этого, добавленное к вашему <tr>
может помочь.
<tr style="<%= bugs.status === 'OPEN' ? 'color: green' : '' %>">
Имейте в виду одну вещь; большинство людей смотрят свысока на встроенные стили, как мой пример. Лучшим вариантом было бы создать класс стилей, в котором были бы все стили, которые вы хотите для своих "открытых" строк, и применить этот класс, используя аналогичную троицу, как я показал выше.
// somewhere in your stylesheet
.open-bug { color: green; }
<tr class="<%= bugs.status === 'OPEN' ? 'open-bug' : '' %>">
style.backgroundColor
вместоstyle.color
если вы хотите изменить цвет фона, а не цвет текста.