Javascript 标记HTML表中的最高值和最低值
我有一个HTML表,我想通过向每列的最高值和最低值添加一个类来标记单元格。我在这里发现了一些相关的问题,但是代码表现不好Javascript 标记HTML表中的最高值和最低值,javascript,jquery,html,Javascript,Jquery,Html,我有一个HTML表,我想通过向每列的最高值和最低值添加一个类来标记单元格。我在这里发现了一些相关的问题,但是代码表现不好 var $table = $("#mytable"); $table.find("th").each(function(columnIndex) { var oldValue=0, currentValue=0, $elementToMark; var $trs = $table.find("tr"); $trs.each(function(index
var $table = $("#mytable");
$table.find("th").each(function(columnIndex)
{
var oldValue=0, currentValue=0, $elementToMark;
var $trs = $table.find("tr");
$trs.each(function(index, element)
{
oldValue= currentValue;
var $td = $(this).find("td:eq("+ columnIndex +")");
if ($td.length!=0)
{
currentValue= parseFloat($td.html());
if(currentValue > oldValue)
{
$elementToMark= $td;
}
if(index == $trs.length-1)
{
$elementToMark.addClass("highest");
}
}
});
});
var $table = $("#mytable");
$table.find("th").each(function(columnIndex)
{
var oldValue=1000000, currentValue=1000000, $elementToMark;
var $trs = $table.find("tr");
$trs.each(function(index, element)
{
oldValue= currentValue;
var $td = $(this).find("td:eq("+ columnIndex +")");
if ($td.length!=0)
{
currentValue= parseFloat($td.html());
if(currentValue < oldValue)
{
$elementToMark= $td;
}
if(index == $trs.length-1)
{
$elementToMark.addClass("lowest");
}
}
});
});
var$table=$(“#mytable”);
$table.find(“th”)。每个函数(columnIndex)
{
var oldValue=0,currentValue=0,$elementToMark;
var$trs=$table.find(“tr”);
$trs.每个(功能(索引、元素)
{
oldValue=当前值;
var$td=$(this).find(“td:eq(“+columnIndex+”));
如果($td.length!=0)
{
currentValue=parseFloat($td.html());
如果(当前值>旧值)
{
$elementToMark=$td;
}
如果(索引==$trs.length-1)
{
$elementToMark.addClass(“最高”);
}
}
});
});
var$table=$(“#mytable”);
$table.find(“th”)。每个函数(columnIndex)
{
var oldValue=1000000,currentValue=1000000,$elementToMark;
var$trs=$table.find(“tr”);
$trs.每个(功能(索引、元素)
{
oldValue=当前值;
var$td=$(this).find(“td:eq(“+columnIndex+”));
如果($td.length!=0)
{
currentValue=parseFloat($td.html());
如果(当前值<旧值)
{
$elementToMark=$td;
}
如果(索引==$trs.length-1)
{
$elementToMark.addClass(“最低”);
}
}
});
});
这里还有一个JSFIDLE:
问题是它没有标记正确的值,我看不出原因。您在错误的位置更新了
旧值
var $table = $("#mytable");
$table.find("th").each(function(columnIndex)
{
var oldValue=0, currentValue=0, $elementToMark;
var $trs = $table.find("tr");
$trs.each(function(index, element)
{
var $td = $(this).find("td:eq("+ columnIndex +")");
if ($td.length!=0)
{
currentValue= parseFloat($td.html());
if(currentValue > oldValue)
{
$elementToMark= $td;
oldValue= currentValue;
}
if(index == $trs.length-1)
{
$elementToMark.addClass("highest");
}
}
});
});
var $table = $("#mytable");
$table.find("th").each(function(columnIndex)
{
var oldValue=1000000, currentValue=1000000, $elementToMark;
var $trs = $table.find("tr");
$trs.each(function(index, element)
{
var $td = $(this).find("td:eq("+ columnIndex +")");
if ($td.length!=0)
{
currentValue= parseFloat($td.html());
if(currentValue < oldValue)
{
$elementToMark= $td;
oldValue= currentValue;
}
if(index == $trs.length-1)
{
$elementToMark.addClass("lowest");
}
}
});
})
var$table=$(“#mytable”);
$table.find(“th”)。每个函数(columnIndex)
{
var oldValue=0,currentValue=0,$elementToMark;
var$trs=$table.find(“tr”);
$trs.每个(功能(索引、元素)
{
var$td=$(this).find(“td:eq(“+columnIndex+”));
如果($td.length!=0)
{
currentValue=parseFloat($td.html());
如果(当前值>旧值)
{
$elementToMark=$td;
oldValue=当前值;
}
如果(索引==$trs.length-1)
{
$elementToMark.addClass(“最高”);
}
}
});
});
var$table=$(“#mytable”);
$table.find(“th”)。每个函数(columnIndex)
{
var oldValue=1000000,currentValue=1000000,$elementToMark;
var$trs=$table.find(“tr”);
$trs.每个(功能(索引、元素)
{
var$td=$(this).find(“td:eq(“+columnIndex+”));
如果($td.length!=0)
{
currentValue=parseFloat($td.html());
如果(当前值<旧值)
{
$elementToMark=$td;
oldValue=当前值;
}
如果(索引==$trs.length-1)
{
$elementToMark.addClass(“最低”);
}
}
});
})
) 此代码将允许最低值或最高值之间的平局。很抱歉我开始玩它,没办法
var $table = $("#mytable");
$table.find("th").each(function(columnIndex)
{
var oldValue=0, currentValue=0;
var $trs = $table.find("tr");
var highElements = [];
var lowElements = [];
var lowestValue = 99999;
var highestValue = 0;
console.log('new column ' + columnIndex);
$trs.each(function(index, element)
{
oldValue= currentValue;
var cell = $(this).find("td:eq("+ columnIndex +")");
if (cell.length!=0)
{
currentValue= parseInt(cell.html());
if(currentValue < lowestValue)
{
lowestValue = currentValue;
lowElements = [];
lowElements.push(cell);
}
else if (currentValue == lowestValue) {
lowElements.push(cell);
}
if (currentValue > highestValue)
{
highestValue = currentValue;
highElements = [];
highElements.push(cell);
}
else if (currentValue == highestValue) {
highElements.push(cell);
}
}
});
$.each(lowElements, function(i, e){
$(e).addClass('lowest');
});
$.each(highElements, function(i, e){
$(e).addClass('highest');
});
var$table=$(“#mytable”);
$table.find(“th”)。每个函数(columnIndex)
{
var oldValue=0,currentValue=0;
var$trs=$table.find(“tr”);
var highElements=[];
var LowerElements=[];
var最低值=99999;
var最高值=0;
console.log('新列'+列索引);
$trs.每个(功能(索引、元素)
{
oldValue=当前值;
var cell=$(this.find(“td:eq(“+columnIndex+”));
if(单元格长度!=0)
{
currentValue=parseInt(cell.html());
如果(当前值<最低值)
{
最低值=当前值;
低元素=[];
下元素推(单元);
}
else if(currentValue==最低值){
下元素推(单元);
}
如果(当前值>最高值)
{
最高值=当前值;
高元素=[];
highElements.push(单元);
}
else if(currentValue==最高值){
highElements.push(单元);
}
}
});
$。每个(低元素,函数(i,e){
$(e).addClass(“最低”);
});
$.each(高级元素、函数(即){
$(e).addClass(“最高”);
});
}))
希望能有帮助
在这里拉小提琴