Jquery 突出显示表格每行中的最大数字

Jquery 突出显示表格每行中的最大数字,jquery,Jquery,我想突出显示表中每行中的最高数字。我想使用css类.max。但我需要避免在第1列和第1行中进行搜索,并省略空单元格 表格, th, 运输署{ 边框:1px纯黑; } 桌子{ 边界塌陷:塌陷; 宽度:100%; } tr:n个孩子(偶数){ 背景色:#E5; } 麦克斯先生{ 颜色:红色; } 项目 商店1 商店2 商店3 项目1 2. 1,333333 1,5 项目2 6. 5. 4. 项目3 4. 30 20 要实现这一点,您可以在每一行中循环,并在单元格中创建一个值数组,在运行时将它们转

我想突出显示表中每行中的最高数字。我想使用css类
.max
。但我需要避免在第1列和第1行中进行搜索,并省略空单元格

表格,
th,
运输署{
边框:1px纯黑;
}
桌子{
边界塌陷:塌陷;
宽度:100%;
}
tr:n个孩子(偶数){
背景色:#E5;
}
麦克斯先生{
颜色:红色;
}

项目
商店1
商店2
商店3
项目1
2.
1,333333
1,5
项目2
6.
5.
4.
项目3
4.
30
20

要实现这一点,您可以在每一行中循环,并在单元格中创建一个值数组,在运行时将它们转换为浮点值。然后可以使用
reduce()
获取具有最高值的单元格的索引,并将类添加到其中

注意,我稍微修改了HTML,使选择相关单元格更容易。即分别使用
thead
tbody
分离标题单元格和正文,并将我们想要定位的单元格更改为
td
,而不是
th
。试试这个:

$('tbody tr')。每个(函数(){
var$tds=$(this.find('td');
var values=$tds.map(函数(){
返回parseFloat($(this.text().trim().replace(',','));
}).get();
$tds.eq(value.reduce((iMax,x,i,arr)=>x>arr[iMax]?i:iMax,0)).addClass('max');
});
表格,
th,
运输署{
边框:1px纯黑;
}
桌子{
边界塌陷:塌陷;
宽度:100%;
}
tr:n个孩子(偶数){
背景色:#E5;
}
麦克斯先生{
颜色:红色;
}

项目
商店1
商店2
商店3
项目1
2.
1,333333
1,5
项目2
6.
5.
4.
项目3
4.
30
20

要实现这一点,您可以在每一行中循环,并在单元格中创建一个值数组,在运行时将它们转换为浮点值。然后可以使用
reduce()
获取具有最高值的单元格的索引,并将类添加到其中

注意,我稍微修改了HTML,使选择相关单元格更容易。即分别使用
thead
tbody
分离标题单元格和正文,并将我们想要定位的单元格更改为
td
,而不是
th
。试试这个:

$('tbody tr')。每个(函数(){
var$tds=$(this.find('td');
var values=$tds.map(函数(){
返回parseFloat($(this.text().trim().replace(',','));
}).get();
$tds.eq(value.reduce((iMax,x,i,arr)=>x>arr[iMax]?i:iMax,0)).addClass('max');
});
表格,
th,
运输署{
边框:1px纯黑;
}
桌子{
边界塌陷:塌陷;
宽度:100%;
}
tr:n个孩子(偶数){
背景色:#E5;
}
麦克斯先生{
颜色:红色;
}

项目
商店1
商店2
商店3
项目1
2.
1,333333
1,5
项目2
6.
5.
4.
项目3
4.
30
20

确定要用句点替换逗号吗?看起来你应该把它们脱掉。不,它们需要更换。在某些数字符号中,使用
代替
。您需要替换它们,因为如果您试图解析它们,JS将抛出错误。如果我只是把它们去掉,那么
13333
就变成了
13333
,而不是原来的
1.333
。啊,好的。这就解释了
1,5
。确实要用句点替换逗号吗?看起来你应该把它们脱掉。不,它们需要更换。在某些数字符号中,使用
代替
。您需要替换它们,因为如果您试图解析它们,JS将抛出错误。如果我只是把它们去掉,那么
13333
就变成了
13333
,而不是原来的
1.333
。啊,好的。这就解释了
1,5