Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要比较html表中的行中的数据_Javascript_Html_Css_Extjs_Html Table - Fatal编程技术网

Javascript 我需要比较html表中的行中的数据

Javascript 我需要比较html表中的行中的数据,javascript,html,css,extjs,html-table,Javascript,Html,Css,Extjs,Html Table,我正在使用javascript循环创建一个由数字组成的表。代码目前创建的表很好,我已经添加了一些样式。 我遇到的问题是找到一种方法来比较单元格列中的数据,以便突出显示该列在该组中表现最好和最差的数据 下面是我正在使用的javascript函数 function performanceMetricsLoad() { var records = storePerformanceMetricsData.getRecordsValues(); var groupTracker = null; var a

我正在使用javascript循环创建一个由数字组成的表。代码目前创建的表很好,我已经添加了一些样式。 我遇到的问题是找到一种方法来比较单元格列中的数据,以便突出显示该列在该组中表现最好和最差的数据

下面是我正在使用的javascript函数

function performanceMetricsLoad() {
var records = storePerformanceMetricsData.getRecordsValues();
var groupTracker = null;
var assetTracker = null;
var htmlStr;
htmlStr = "<table class='TableStyles'><thead class='HeaderStyles'><tr><th width='400'>Name</th><th width='110'>1 month Cumulative Performance to "
            + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>3 month Cumulative Performance to "
            + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>6 month Cumulative Performance to "
            + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>12 month Cumulative Performance to " 
            + records[0].DatetimeRecorded.format("F j, Y") + "</th></tr></thead><tbody>";

for (var i = 0; i < records.length; i++) {

    if (groupTracker != records[i].ClassOption) {
        htmlStr += "<tr>" + "<td class='GroupStyleCSS' colspan='5'>" 
        + records[i].Diversification + "</td></tr>";
        groupTracker = records[i].ClassOption;
    }

    if (groupTracker == records[i].ClassOption) {
        htmlStr += "<tr>" + "<td class='RecordCssStyle'>" + records[i].AssetLongName
        + "</td>"+ "<td class='RecDiv'>" + records[i].TotalReturn1m.toFixed(2)
        + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn3m.toFixed(2)
        + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn6m.toFixed(2) 
        + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn12m.toFixed(2) + "</tr>"; 
        assetTracker = records[i].AssetLongName;
    }
}

htmlStr += "</tbody></table>";
createRow("", htmlStr);
frmMetrics.doLayout();
function performanceMetricsLoad(){
var records=storePerformanceMetricsData.getRecordsValues();
var-groupTracker=null;
var assetTracker=null;
var-htmlStr;
htmlStr=“名称1个月累计绩效至”
+记录[0].DatetimeRecorded.format(“F j,Y”)+“3个月累计绩效到”
+记录[0].DatetimeRecorded.format(“F j,Y”)+“6个月累计绩效至”
+记录[0].DatetimeRecorded.format(“F j,Y”)+“12个月累计绩效至”
+记录[0].DatetimeRecorded.format(“F j,Y”)+“”;
对于(var i=0;i
}

函数createRow(cls,文本){
frmMetrics.add(新的Ext.BoxComponent({
cls:cls,
html:“+文本+”
}));
}

信息被输出到EXT formPanel中

我现在遇到的问题是,我需要它输出我需要的信息,以便找到一种方法,在列、分组中突出显示最佳和最差的表现

根据使用SQL查询请求的信息,该表在基金名称的顶部输出5列,在左侧输出最多10组,这些基金名称按其“多样化”进行分组

有人知道我可以用这段代码的当前状态来实现这一点吗?我正在考虑使用另一个外部函数,可能还有一些if语句来选择不同的css类……非常感谢您的帮助。 非常感谢


很抱歉没有截图,我试着加入了一些,但显然我需要一个10分的声誉分数,或者类似的东西…

将这两行添加到函数的顶部

var largest;
var smallest;
然后在循环中添加:

if(value > largest){
    largest = value;
}
if(value < smallest){
    smallest = value;
}
if(值>最大值){
最大=价值;
}
if(值<最小值){
最小=值;
}

如果要向具有这些值的单元格添加样式,请在一行中添加以存储这些值的索引(以相同的方式更新),并使用css设置或并选择ID

找到最大和最小的数字不是很简单吗?你可以为最大值和最小值创建一个变量,在创建每一行时,比较最大值和最小值。如果大于最大值,则更改最大变量,与最小变量相同。绝对不要将DOM用于数据存储。真的很慢。在添加行并向需要的行添加额外的CSS类时,使用JavaScript变量进行所有比较。如果您已经在使用Ext,我想您至少对Ext“look”感到满意。那么,为什么不放弃原始表,改用Ext.grid.Panel呢?您可以让它使用一个表示您的性能指标数据结构的存储。然后,您可以使用Ext框架功能(例如,在列渲染器函数中)进行格式化。我已明确被告知此函数不必使用Ext gridpanel,如果不是这样的话,这将是我的第一选择。
if(value > largest){
    largest = value;
}
if(value < smallest){
    smallest = value;
}