HTML 和 CSS - 根据值更改单元格的文本颜色

Posted

技术标签:

【中文标题】HTML 和 CSS - 根据值更改单元格的文本颜色【英文标题】:HTML and CSS - Changing text color of cell depending on value 【发布时间】:2017-08-15 17:50:10 【问题描述】:

抱歉,我没有找到简单的解决方案。我想根据单元格的值更改单元格内的文本颜色。

非常简单的表格:

<table>
  <tbody>
    <tr>
      <td>Quantity</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

我的格式规则:

如果数字是 1 应该是黄色的 如果数字 >1 应该是红色的

我找到了这段代码,但我不能在我的文件中使用它,谢谢

$('#mytable tr td').each(function()

    if($(this).text() > 1)$(this).css('background-color','red');
);

任何人都可以提出解决方案吗?

此外,如果我的表格中有其他数字单元格 喜欢这个:

<table>
  <tbody>
    <tr>
      <td>price</td>
      <td>20</td>
    </tr>
    <tr>
      <td>quantity</td>
      <td>2</td>
    </tr>
  </tbody>
</table>

我可以只为一个单元格应用代码吗?

我必须通过编辑发送订单确认电子邮件的 prestashop mailaltert 模块来进行此更改。

在 mailorder.php 中,我应该在数量所在的单元格中包含更改颜色的条件。

邮件会在new_order.html文件的基础上生成-是邮件模板-,获取mailorder.php生成的数据

我应该把脚本代码放在哪里? 如果需要,我可以过去文件部分。 谢谢

【问题讨论】:

【参考方案1】:

使用parseFloat 检查该值是否为数字 - 如果是,则根据该值应用样式:

$('#mytable tr td').each(function()
  var cellValue = $(this).html();
  if(!isNaN(parseFloat(cellValue))) 
    if (cellValue > 1) 
      $(this).css('background-color','red');
     else 
      $(this).css('background-color','yellow');
    
  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable">
  <tbody>
    <tr>
      <td>Quantity</td>
      <td>1</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>3</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>2</td>
    </tr>
  </tbody>
</table>

【讨论】:

检查是否有 != NaN 什么都不做,因为 NaN 永远不等于 NaN。【参考方案2】:

试试这个代码,然后根据你的选择改变代码和脚本以及 if 条件。

$('#mytable tr td').each(function()
  var cellValue = $(this).html();
  if(!isNaN(parseFloat(cellValue))) 
    if (cellValue == 1) 
      $(this).css('background-color','red');
     
    
    if(cellValue==2)
     $(this).css('background-color','green');
     
     
         if(cellValue==3)
     $(this).css('background-color','blue');
     
     
              if(cellValue==4)
     $(this).css('background-color','yellow');
     
  
);
table tr td

padding:10px;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable" border="1" style="border-collapse:collapse;">
  <tbody>
    <tr>
      <td>Quantity</td>
      <td>1</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>3</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>2</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>1</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>3</td>
    </tr>
    <tr>
      <td>Quantity</td>
      <td>2</td>
    </tr>
  </tbody>
</table>

【讨论】:

以上是关于HTML 和 CSS - 根据值更改单元格的文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何根据我放入 UITextbox 的文本量来更改 UICollectionView 单元格的垂直大小?

根据存储在其他单元格中的 RGB 值动态更改单元格的背景颜色

HTML / CSS / Javascript - 将鼠标悬停在不同的单元格上时更改一个表格单元格的值

选中时更改 UICollectionView 单元格的背景和标签颜色

根据单元格的不更改单元格高度动态更改 UICollectionView 高度

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色