Javascript 让学生';s name元素具有数组中的最高点值,并在jquery中突出显示该名称

Javascript 让学生';s name元素具有数组中的最高点值,并在jquery中突出显示该名称,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想得到学生的名字有最高点和CSS为这个名字 HTML 这些代码将添加到视图中 var html = ""; for (var i = 0; i < dssv.length; i++) { var sv = dssv[i]; // dssv is the list-student var stt = i + 1; var sv_html = "<tr><td>" + st

我想得到学生的名字有最高点和CSS为这个名字

HTML

这些代码将添加到视图中

    var html = "";
        for (var i = 0; i < dssv.length; i++) {
            var sv = dssv[i]; // dssv is the list-student
            var stt = i + 1;
            var sv_html = "<tr><td>" + stt + "</td><td>" + sv[0] + "</td><td>" + sv[1] +
                "</td><td>" + sv[2] + "</td><td>" + sv[3] + "</td><td>" +
                sv[4] + "</td><td>" + sv[5] + "</td><td>" + "<button>delete</button>" + "</td></tr>";
            html = html + sv_html;
        }
        $('#list-student').html(html);
    });
这些代码用于计算平均点

        var point = [];
        for (var i = 0; i < dssv.length; i++) {
            var sv = dssv[i]; // dssv is the list-student
            var stt = i + 1;
// sv[2] = math, // sv[3] = english, // sv[4] = literature point 
            var pointAverage = (parseInt(sv[2]) + parseInt(sv[3]) + parseInt(sv[4])) / 3;
            point.push(pointAverage);
        }


        var iterator = point.values();
这是我想要的结果


您可以在tr标记内的每个循环中执行您的要求,只在一个循环中查找最高值

function findHighest(){
     var highest = 0; // assum min 0
     var highestItem;
     $('tr').each(function(index, item){
        if(index > 0){
        var math = $(item).find('td').eq(1).text();
        var eng = $(item).find('td').eq(2).text();
        var lit = $(item).find('td').eq(3).text();

        //alert(math)

        var sum = parseFloat(math) + parseFloat(eng) + parseFloat(lit)
        if (sum > highest){
            highest = sum;
            highestItem = item;
        }
      }
     })

      $(highestItem).css({ 'font-style': 'italic', 'color': 'red' });
}
演示:

函数findHighest(){
var highest=0;//假设最小值为0
var Highestime;
$('tr')。每个(功能(索引,项){
如果(索引>0){
var math=$(item.find('td').eq(1.text();
var eng=$(item.find('td').eq(2.text();
var lit=$(item.find('td').eq(3.text();
//警报(数学)
var sum=parseFloat(数学)+parseFloat(英语)+parseFloat(光)
如果(总和>最高值){
最高=总和;
最高项目=项目;
}
}
})
$(highestItem).css({'font-style':'italic','color':'red'});
}

桌子{
字体系列:arial,无衬线;
边界塌陷:塌陷;
宽度:100%;
}
td,th{
边框:1px实心#dddddd;
文本对齐:左对齐;
填充:8px;
}
tr:n个孩子(偶数){
背景色:#dddddd;
}
名称
数学
英语
蜡像
记
8.
8.
8.
李
9
9
9
发现

我想这就是你想要的:

此代码获取一组学生数据(姓名和分数)并将其插入表中,然后通过单击
Show Top student
按钮,突出显示平均分数最高的表行

            <button id="showTop">Show Top Student</button>
            <table>
                <thead>
                    <tr>
                        <td>Name</td>
                        <td>Math</td>
                        <td>English</td>
                        <td>Literature</td>
                    </tr>
                </thead>
                <tbody>
                    <!-- contents will be filled by js codes -->
                </tbody>
            </table>


            <script type="text/javascript">

                let studentsScores = [
                    ['KEE', 8, 8, 8],
                    ['LE', 9, 9, 9]
                ];

                let tbodyHtml = '';
                let avgScores = [];

                for (let i = 0; i < studentsScores.length; i ++) {

                    tbodyHtml += '<tr>';
                    let studentsTotalScore = 0;
                    let numOfSubjects = studentsScores[i].length - 1; // -1 for ignoring the name field

                    for (let j = 0; j < studentsScores[i].length; j ++) {
                        tbodyHtml += '<td class="item-'+ i +'">' + studentsScores[i][j] + '</td>';

                        if (j > 0) { // ignore the name filed
                            studentsTotalScore += studentsScores[i][j];
                        }

                    }

                    avgScores.push([i, studentsTotalScore / numOfSubjects]);
                    tbodyHtml += '</tr>';
                }

                jQuery('tbody').html(tbodyHtml);

                jQuery('#showTop').on('click', function() {

                    for (let i = 1; i < avgScores.length; i ++) {
                        if (avgScores[i-1][1] > avgScores[i]) {
                            jQuery('td.item-' + avgScores[i-1][0]).css('background-color', 'yellow');
                        }
                        else {
                            jQuery('td.item-' + avgScores[i][0]).css('background-color', 'yellow');
                        }
                    }

                });
            </script>

展示优秀学生
名称
数学
英语
文学类
让学生讨论=[
[KEE',8,8,8],
[LE',9,9,9]
];
让tbodyHtml='';
设avgScores=[];
for(设i=0;i0){//忽略该名称字段
studentsTotalScore+=StudentsCores[i][j];
}
}
avgScores.push([i,学生总分/受试人数]);
tbodyHtml+='';
}
jQuery('tbody').html(tbodyHtml);
jQuery('#showTop')。在('click',function()上{
for(设i=1;iavgScores[i]){
jQuery('td.item-'+avgScores[i-1][0]).css('background-color','yellow');
}
否则{
jQuery('td.item-'+avgScores[i][0]).css('background-color','yellow');
}
}
});

很乐意帮助您@KEE,如果您通过勾选答案左上角的绿色标记将其标记为已接受的答案,那就太好了。
        $("#list-student").each(function() {
            let el = $('#list-student').html();
                if (el == highest) {
                $('#ds-sv').parent().css({ 'font-style': 'italic', 'color': 'red' });
            }
        });
    });
function findHighest(){
     var highest = 0; // assum min 0
     var highestItem;
     $('tr').each(function(index, item){
        if(index > 0){
        var math = $(item).find('td').eq(1).text();
        var eng = $(item).find('td').eq(2).text();
        var lit = $(item).find('td').eq(3).text();

        //alert(math)

        var sum = parseFloat(math) + parseFloat(eng) + parseFloat(lit)
        if (sum > highest){
            highest = sum;
            highestItem = item;
        }
      }
     })

      $(highestItem).css({ 'font-style': 'italic', 'color': 'red' });
}
            <button id="showTop">Show Top Student</button>
            <table>
                <thead>
                    <tr>
                        <td>Name</td>
                        <td>Math</td>
                        <td>English</td>
                        <td>Literature</td>
                    </tr>
                </thead>
                <tbody>
                    <!-- contents will be filled by js codes -->
                </tbody>
            </table>


            <script type="text/javascript">

                let studentsScores = [
                    ['KEE', 8, 8, 8],
                    ['LE', 9, 9, 9]
                ];

                let tbodyHtml = '';
                let avgScores = [];

                for (let i = 0; i < studentsScores.length; i ++) {

                    tbodyHtml += '<tr>';
                    let studentsTotalScore = 0;
                    let numOfSubjects = studentsScores[i].length - 1; // -1 for ignoring the name field

                    for (let j = 0; j < studentsScores[i].length; j ++) {
                        tbodyHtml += '<td class="item-'+ i +'">' + studentsScores[i][j] + '</td>';

                        if (j > 0) { // ignore the name filed
                            studentsTotalScore += studentsScores[i][j];
                        }

                    }

                    avgScores.push([i, studentsTotalScore / numOfSubjects]);
                    tbodyHtml += '</tr>';
                }

                jQuery('tbody').html(tbodyHtml);

                jQuery('#showTop').on('click', function() {

                    for (let i = 1; i < avgScores.length; i ++) {
                        if (avgScores[i-1][1] > avgScores[i]) {
                            jQuery('td.item-' + avgScores[i-1][0]).css('background-color', 'yellow');
                        }
                        else {
                            jQuery('td.item-' + avgScores[i][0]).css('background-color', 'yellow');
                        }
                    }

                });
            </script>