javascript - 如何为html表上同一行具有不同值的行赋予红色?
问题描述
如何为 HTML 表上同一行具有不同值的行赋予红色?
当行中的至少一个单元格彼此不同时,我需要
然后给整行红色字体
如果您在所有未更改颜色的单元格上看到具有相同值的行下方。
我需要函数为在同一行上至少有一个值与其他值不同的行赋予红色
所以如何通过jquery或javascript使函数做到这一点,如果有的话,它会为一行做红色
至少不同的单元格值。
<!DOCTYPE html>
<html>
<body>
<table border="1">
<col width="500">
<col width="500">
<col width="500">
<col width="500">
<tr bgcolor="#6699FF" width="100%">
<th>Part1</th>
<th>Part2</th>
<th>Part3</th>
<th>Part4</th>
<tr>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>12</td>
<td>15</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>17</td>
<td>15</td>
<td>13</td>
<td>12</td>
</tr>
</table>
<button id="button">Click Me</button>
</body>
</html>
解决方案
您可以从每个tr检查td的唯一值的长度。如果长度大于一,则值不同,否则相同。
使用 JavaScript:
document.addEventListener('DOMContentLoaded', (event) => {
var trList = document.querySelectorAll('tr');
trList.forEach(function(tr){
var count = [...new Set(Array.from(tr.querySelectorAll('td')).map(i => i.textContent))].length;
if(count > 1) tr.style.color = 'red';
});
});
<table border="1">
<col width="500">
<col width="500">
<col width="500">
<col width="500">
<tr bgcolor="#6699FF" width="100%">
<th>Part1</th>
<th>Part2</th>
<th>Part3</th>
<th>Part4</th>
<tr>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>12</td>
<td>15</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>17</td>
<td>15</td>
<td>13</td>
<td>12</td>
</tr>
</table>
<button id="button">Click Me</button>
使用 jQuery:
$(document).ready(function(){
$('tr').each(function(){
var count = [...new Set($(this).find('td').map((_,i) => $(i).text()).get())].length;
if(count > 1) $(this).css('color', 'red');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1">
<col width="500">
<col width="500">
<col width="500">
<col width="500">
<tr bgcolor="#6699FF" width="100%">
<th>Part1</th>
<th>Part2</th>
<th>Part3</th>
<th>Part4</th>
<tr>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>12</td>
<td>15</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>17</td>
<td>15</td>
<td>13</td>
<td>12</td>
</tr>
</table>
<button id="button">Click Me</button>
推荐阅读
- apache-kafka - 为了支持 18 台 kafka 机器,我们需要多少个 zookeper 服务器
- python-3.x - 有循环中断列表框?
- angular - 概括休息服务调用并将服务器响应映射到我的对象
- python - 在 Ansbile Vault 中存储密码并使用 API 从 Python 脚本中检索该密钥
- iis - 在 ASP.NET 中使用 QUERY_STRING 重写特定条件的 URL
- r - 在文本文件中的特定行之间粘贴文本?(右)
- r - 在 R 中重新组织数据框
- java - 如何在 JAVA 中将字符串变量转换回字节 []
- jquery - Ajax 发布到 Laravel API 访问错误
- python - 将元组转换为机器学习研究中特征的字符串