表格条件格式设置求助:当A2>A1时将整行设为红色(Each命令数据访问正常但类分配遇阻)
解决表格行根据单元格数值设置样式的问题
我来帮你搞定这个问题!首先得指出你代码里的一个关键问题——重复使用了相同的id(比如satir、envanter、kritikStok),HTML里id必须是唯一标识,重复的id会导致JS选择元素时出错,所以第一步先把这些id改成class,再配合逻辑实现样式设置。
1. 修正HTML结构(替换重复id为class)
先把重复的id替换成可复用的class,同时提前定义好红色行的样式:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <style> /* 定义红色行的样式,这里用浅红背景,你也可以改成文字红色 */ .red-row { background-color: #ffcccc; } </style> <table class="table table-sm table-bordered mt-4" style="font-size: 12px; "> <thead> <th><center>Stok</center></th> <th><center>A1</center></th> <th><center>A2</center></th> </thead> <tbody id="arsivTablosu"> <tr class="satir"> <td>A1</td> <td class="envanter"><center>44</center></td> <td class="kritikStok"><center>45</center></td> </tr> <tr class="satir"> <td>A2</td> <td class="envanter"><center>50</center></td> <td class="kritikStok"><center>10</center></td> </tr> <tr class="satir"> <td>A3</td> <td class="envanter"><center>26</center></td> <td class="kritikStok"><center>27</center></td> </tr> <tr class="satir"> <td>A4</td> <td class="envanter"><center>40</center></td> <td class="kritikStok"><center>39</center></td> </tr> </tbody> </table>
2. 编写JavaScript逻辑判断并添加样式
通过遍历每一行,提取单元格数值进行比较,给符合条件的行添加样式类:
// 等待DOM加载完成后执行逻辑 document.addEventListener('DOMContentLoaded', function() { // 获取表格里的所有行 const rows = document.querySelectorAll('#arsivTablosu .satir'); rows.forEach(row => { // 提取当前行的A1和A2数值,转成数字并去除多余空格 const a1Value = parseInt(row.querySelector('.envanter').textContent.trim()); const a2Value = parseInt(row.querySelector('.kritikStok').textContent.trim()); // 当A2数值大于A1时,给该行添加红色样式类 if (a2Value > a1Value) { row.classList.add('red-row'); } }); });
关键细节说明
class替代id:class支持重复使用,适合批量选择同类型元素,避免了重复id导致的选择器错误。- 数值转换:用
parseInt()把单元格的文本内容转成整数(如果是小数可以用parseFloat()),确保能正确进行数值比较。 - 样式分离:把样式定义在CSS里,通过JS动态添加类名,让逻辑和样式解耦,更易维护。
这样运行后,第一行和第三行就会自动变成红色背景,完全符合你的需求!
内容的提问来源于stack exchange,提问作者ciftciefendi
相关产品推荐
相关产品推荐

