jQuery/JavaScript在表列中查找最高值
这是我的桌子jQuery/JavaScript在表列中查找最高值,javascript,html-table,Javascript,Html Table,这是我的桌子 <table id="aktivita"> <tr> <td>Jack</td> <td>450</td> <td>794</td> <td>784</td> </tr> <tr> <td>Steve</td> <td>145</td>
<table id="aktivita">
<tr>
<td>Jack</td>
<td>450</td>
<td>794</td>
<td>784</td>
</tr>
<tr>
<td>Steve</td>
<td>145</td>
<td>794</td>
<td>789</td>
</tr>
<tr>
<td>Mike</td>
<td>2794</td>
<td>2794</td>
<td>79</td>
</tr>
</table>
这就是我所拥有的。我不太喜欢我使用的变量基本上都是相同的代码。有没有办法让它变干?你可以在
td
s上循环,找到最小值和最大值,并进行相应的处理
$(函数(){
var cols=[]
var trs=$(“#aktivita tr”)
var数据=$。每个(trs,函数(索引,tr){
$.each($(tr).find(“td”).not(“:first”),函数(索引,td){
cols[index]=cols[index]| |[];
cols[index].push($(td).text())
})
});
列forEach(函数(列,索引){
var max=Math.max.apply(null,col);
var min=Math.min.apply(null,col)
$('aktivita tr').find('td:eq(+(index+1)+'))。每个(函数(i,td){
$(td).toggleClass('max',+$(td).text()==max)
$(td).toggleClass('min',+$(td).text()==min)
})
})
})
.max{
颜色:蓝色
}
闵先生{
颜色:红色
}
杰克
450
794
784
史蒂夫
145
794
789
迈克
2794
2794
79
您可以在td
s上循环,找到最小值和最大值,并进行相应的处理
$(函数(){
var cols=[]
var trs=$(“#aktivita tr”)
var数据=$。每个(trs,函数(索引,tr){
$.each($(tr).find(“td”).not(“:first”),函数(索引,td){
cols[index]=cols[index]| |[];
cols[index].push($(td).text())
})
});
列forEach(函数(列,索引){
var max=Math.max.apply(null,col);
var min=Math.min.apply(null,col)
$('aktivita tr').find('td:eq(+(index+1)+'))。每个(函数(i,td){
$(td).toggleClass('max',+$(td).text()==max)
$(td).toggleClass('min',+$(td).text()==min)
})
})
})
.max{
颜色:蓝色
}
闵先生{
颜色:红色
}
杰克
450
794
784
史蒂夫
145
794
789
迈克
2794
2794
79
您可以使用map()
查找每个tr
的最小值和最大值并添加类
var i=1;
while(i<$('tr:first child td')。长度){
var ar=$('table tr').map(函数(){
返回编号($(this.find('td:nth child(+(i+1)+')).text());
})
var max=Math.max.apply(null,ar);
var min=Math.min.apply(null,ar);
var ar=$('table tr')。find('td')。each(function(){
if(数字($(this).text())==max){
$(this.addClass('max');
}else if(数字($(this).text())==min){
$(this.addClass('min');
}
})
i++;
}
.max{
颜色:红色;
}
闵先生{
颜色:绿色;
}
杰克
450
794
784
史蒂夫
145
794
789
迈克
2794
2794
79
您可以使用map()
查找每个tr
的最小值和最大值并添加类
var i=1;
while(i<$('tr:first child td')。长度){
var ar=$('table tr').map(函数(){
返回编号($(this.find('td:nth child(+(i+1)+')).text());
})
var max=Math.max.apply(null,ar);
var min=Math.min.apply(null,ar);
var ar=$('table tr')。find('td')。each(function(){
if(数字($(this).text())==max){
$(this.addClass('max');
}else if(数字($(this).text())==min){
$(this.addClass('min');
}
})
i++;
}
.max{
颜色:红色;
}
闵先生{
颜色:绿色;
}
杰克
450
794
784
史蒂夫
145
794
789
迈克
2794
2794
79
这一款似乎适合我:
var offset = 1;
$('#aktivita tr').each(function () {
var values = [];
$(this).children('td').each(function (i,v) {
if (i < offset) return;
var value = parseInt($(this).text());
if(!isNaN(value))
values.push(value);
});
var maxValue = Math.max.apply(null, values);
var minValue = Math.min.apply(null, values);
$(this).children('td').each(function () {
if ($(this).text() == maxValue.toString()) {
$(this).addClass('max');
}
if ($(this).text() == minValue.toString()) {
$(this).addClass('min');
}
});
});
var offset=1;
$('#aktivita tr')。每个(函数(){
var值=[];
$(this).children('td')。每个(函数(i,v){
如果(i
其中offset是实际值开始之前的列数(以防万一您只提供简化数据)。这一项似乎适用于我:
var offset = 1;
$('#aktivita tr').each(function () {
var values = [];
$(this).children('td').each(function (i,v) {
if (i < offset) return;
var value = parseInt($(this).text());
if(!isNaN(value))
values.push(value);
});
var maxValue = Math.max.apply(null, values);
var minValue = Math.min.apply(null, values);
$(this).children('td').each(function () {
if ($(this).text() == maxValue.toString()) {
$(this).addClass('max');
}
if ($(this).text() == minValue.toString()) {
$(this).addClass('min');
}
});
});
var offset=1;
$('#aktivita tr')。每个(函数(){
var值=[];
$(this).children('td')。每个(函数(i,v){
如果(i
其中offset是实际值开始之前的列数(以防您只提供简化数据)。但这会突出显示整个列的最高/最低值。我想获取列号,查找最高/最低值,并为此添加类。@Ostrov我更新了答案,现在它为每列查找最小值和最大值。但这突出显示了整个列的最高/最低值。我想获取列号,查找最高/最低值,并为此添加类。@奥斯特罗夫我更新了答案,现在它为每列查找最小值和最大值。谢谢,但这是针对行的,不是针对列的。@奥斯特罗夫我想我不明白这个问题。您希望突出显示具有最大值和最小值的单元格。是吗?对不起:)是的,我希望如此。但是对于每一列,请看屏幕截图。红线表示最小类,绿色表示最大类。谢谢,但这是行,而不是列。@Ostrov我想我不明白这个问题。您希望突出显示具有最大值和最小值的单元格。是吗?对不起:)是的,我是