Javascript 迭代表行和单元格并更改特定样式

Javascript 迭代表行和单元格并更改特定样式,javascript,jquery,Javascript,Jquery,我试图循环检查每一行,以检查该特定人员的分数,并将其与该人员的分数列值进行比较。如果** 标记>分数,单元格背景颜色将为绿色,否则将为绿色 变红 **我可以给单元格着色,但它只考虑第一行的分数值。我在努力理解我在这里遗漏了什么 $('#'+'marksbody')。查找('tr>td')。每个(函数(i,el){ var scoreValue1=$('#'+'marksbody'+'tr td:nth child(7)>label[id^=“score”]”)[0]。innerHTML.spl

我试图循环检查每一行,以检查该特定人员的分数,并将其与该人员的分数列值进行比较。如果**

标记>分数,单元格背景颜色将为绿色,否则将为绿色 变红

**我可以给单元格着色,但它只考虑第一行的分数值。我在努力理解我在这里遗漏了什么

$('#'+'marksbody')。查找('tr>td')。每个(函数(i,el){
var scoreValue1=$('#'+'marksbody'+'tr td:nth child(7)>label[id^=“score”]”)[0]。innerHTML.split(“%”[0]。trim();
var scoreValue=(scoreValue1==null | | scoreValue1=='')?0:数字(scoreValue1);
日志(“分数值:”+scoreValue)
if(isNaN(数字($(this).text().split(“%”[0].trim())==false和编号($(this).text().split($)[0].trim())>=Number(scoreValue)){
$(this.css({'background-color':'lightgreen'});
}

否则,如果(isNaN(Number($(this).text().split(“%”[0].trim())==false&&Number($(this).text().split($)[0].trim())我修改了您的代码段,使其在上迭代,然后在该行的单个单元格上迭代

通过引用每行的静态元素(
$(row).find(“td”)[6]
(这是一个基于0的索引,因此[6]是第七列),函数始终将实际单元格的值与分数进行比较

$(行).find(“td”)[6]
返回一个DOM元素-如果要在此元素上使用jQuery,必须再次包装它:
$($(行).find(“td”)[6])
(否则将引发错误)

$(“#marksbody>tr”)。每个(函数(i,行){
$(行)。查找(“td”)。每个(函数(j,单元格){
const cellValue=parseInt($(cell.text().trim(),10)
//创建引用单元格(分数)
//注意(!)您必须再次将找到的元素包装在$()中!
const score=parseInt($($(行).find(“td”)[6]).text().trim(),10)
如果(!isNaN(cellValue)&&cellValue>score){
$(单元格).css('背景色','浅绿色')
}如果(!isNaN(cellValue))则为else{
$(单元格).css('背景色','红色')
}
})
})

名称
标记2
Mark3s
标记4
标记5
标记6
分数
平均值
全部的
摇滚乐
20
25
28
40
50
0
80
90
亚历克斯
20
25
28
40
50
40
80
90
陈
20
25
28
40
50
50%
80
90
做记号
20
25
28
40
50
60
80
90
禅
20
25
28
40
50
70
80
90

$('#'+'marksbody'+'trtd:n子项(7)
始终选择表的第7个TD。它没有引用每个
循环。首先感谢您的回答。它工作得很好,但是当表的单元格中有小数点时,它会因为parseInt而忽略小数点。有什么想法,我们如何解决吗?我将其更改为parseFloat。看起来,它工作得很好:)是的,这是一个解决方案