根据条件、GSP、JQ 在订单行上应用删除线

Apply a strike-through line on Order Row based on a condition, GSP, JQ

我在 table 中显示对象列表,每个对象占 1 行。如果对象的某个参数设置为 1,我希望特定行在其上有删除线 运行。这是我的代码:

<% patientOrders.each { order -> %>

 <tr class="orderRow">

  <% if(order.discontinued == 1) { %>

   <script type="text/javascript">
     jq(this).closest('.orderRow').css({"text-decoration": "line-through","text-decoration-color": "red"});
   </script>
  <% } %>

  <td>${ order.drugname.getDisplayString().toUpperCase() }</td>
  <td>${ order.startdate.format('yyyy-MM-dd') }</td>

 </tr>
<% } %>

每个患者订单都列在 table 中。对于所有 'discontinued' 参数设置为 1 的订单,将显示删除线。 我无法实现这个。谁能帮帮我?

谢谢!

可以有条件地在'tr'上加一个class,表示停产的订单,写CSS表示删除线,大概是这样:

<% patientOrders.each { order -> %>

 <tr class="orderRow <% if(order.discontinued == 1) { %> discontinued <% } %>">

  <td>${ order.drugname.getDisplayString().toUpperCase() }</td>
  <td>${ order.startdate.format('yyyy-MM-dd') }</td>

 </tr>
<% } %>

CSS:

orderRow.discontinued{
    text-decoration: line-through;
    text-decoration-color: red;
}

注意:大多数主流浏览器不支持 text-decoration-color,您可以使用 color: red 代替,但它也会改变文本颜色。

如果您希望删除线为红色而文本为不同颜色,则可以覆盖 td 的颜色以及上面的 CSS 来实现:

CSS:

.orderRow td{
    color: black;
}