Javascript 让学生';s name元素具有数组中的最高点值,并在jquery中突出显示该名称
我想得到学生的名字有最高点和CSS为这个名字 HTML 这些代码将添加到视图中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
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>