jQuery/JavaScript查找表列中的最大值
jQuery/JavaScript find highest value in table column
这是我的表格
<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具有相同的值并且是最高的(或最低的),则它们必须具有适当的类。
$('#aktivita tr').each(function(){
var first = $(this).find("td:nth-of-type(2)").text();
var second = $(this).find("td:nth-of-type(3)").text();
var third = $(this).find("td:nth-of-type(4)").text();
console.log(first);
console.log(second);
console.log(third);
});
这是我所拥有的。我不太喜欢我使用的变量基本相同的代码。有办法让它变干吗?
您可以遍历td
s并找到最小值和最大值并相应地处理
$(function(){
var cols = []
var trs = $('#aktivita tr')
var data =$.each(trs , function(index, tr){
$.each($(tr).find("td").not(":first"), function(index, td){
cols[index] = cols[index] || [];
cols[index].push($(td).text())
})
});
cols.forEach(function(col, index){
var max = Math.max.apply(null, col);
var min = Math.min.apply(null, col)
$('#aktivita tr').find('td:eq('+(index+1)+')').each(function(i, td){
$(td).toggleClass('max', +$(td).text() === max)
$(td).toggleClass('min', +$(td).text() === min)
})
})
})
.max {
color: blue
}
.min {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<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>
这个似乎对我有用:
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');
}
});
});
其中offset是实际值开始前的列数(以防您只交付简化的数据)。
您可以使用map()
找到每个tr
的最小值和最大值并添加类。
var i = 1;
while (i < $('tr:first-child td').length) {
var ar = $('table tr').map(function() {
return Number($(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 (Number($(this).text()) == max) {
$(this).addClass('max');
} else if (Number($(this).text()) == min) {
$(this).addClass('min');
}
})
i++;
}
.max {
color: red;
}
.min {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>
相关文章:
- 在Javascript数组中查找绝对最大值
- 在 JavaScript 事件中添加最小值和最大值
- 从 JavaScript 中的数组中获取最大值和最小值
- 使用javascript动态更改select中的最大值
- 返回javascript对象中的最大值
- 如何在JavaScript中从数组中获取最大值
- 在JavaScript多维数组中查找每个x值的最大值
- Javascript最大值和最小值不起作用
- JavaScript/Andercore获取对象中所有项的最小-最大值
- Javascript:如何获取输入范围内的最大值
- 如何通过javascript获取html范围输入类型的最大值
- 在多维数组 JavaScript 或 coffeescript 中获取最大值
- 在稀疏 JavaScript 数组中查找最大值
- JavaScript 多维数组中的最大值
- 使用 JavaScript 函数在数组中查找最大值
- JavaScript window.resize是否有最大值
- 如何通过javascript或jquery在html5中设置的最大值和最小值
- 从 JavaScript 数组中获取对象值的最大值和最小值
- 比较多维数组找到数组的最大值javascript
- 代码说明:处理最小值和最大值- Javascript