Javascript 将类添加到最大值
我有这个东西 要工作,您需要更改选择。 更改选项后,将显示一些值,我将在Javascript 将类添加到最大值,javascript,jquery,Javascript,Jquery,我有这个东西 要工作,您需要更改选择。 更改选项后,将显示一些值,我将在currentDATA[year]的最大值上添加最高的类 但问题是,如果我切换到Something#2并返回到Something#1,正确的值不会突出显示 if(value > prevVal) { $el.parent().find('span').removeClass('highest'); $el.addClass('highest'); } 有人能解释一下我做错了什么吗
currentDATA[year]
的最大值上添加最高的类
但问题是,如果我切换到Something#2
并返回到Something#1
,正确的值不会突出显示
if(value > prevVal) {
$el.parent().find('span').removeClass('highest');
$el.addClass('highest');
}
有人能解释一下我做错了什么吗?您必须一直跟踪最高值:
$('select').on('change', function() {
var currentDATA = myJSON[$(this).val()];
var highestVal = 0;
var highestValObj;
for(var year in currentDATA){
for(var val in currentDATA[year]) {
var value = currentDATA[year][val];
var $el = $('.' + val + '_' + year);
$el.html(value);
if(value > highestVal) {
highestVal = value;
highestValObj = $el;
}
}
}
$('.highest').removeClass('highest');
highestValObj.addClass('highest');
});
Yor
preval
始终为0。如果希望代码正常工作,请更改为:
if(value > prevVal) {
prevVal = value;
$el.parent().find('span').removeClass('highest');
$el.addClass('highest');
}
但我建议你改名。构建逻辑时,不应将当前值与先前值进行比较,而应将其与所有先前值中的最高值进行比较。首先,prevVal始终为零。这样的设置可以让它工作一年 接下来,您需要每年将prevVal重置为零,这样每个值都将找到自己的最大值
$('select').on('change', function() {
var currentDATA = myJSON[$(this).val()];
for(var year in currentDATA){
var prevVal = 0;
console.log(year);
for(var val in currentDATA[year]) {
var value = currentDATA[year][val];
var $el = $('.' + val + '_' + year);
$el.html(value);
if(value > prevVal) {
prevVal = value;
$el.parent().find('span').removeClass('highest');
$el.addClass('highest');
}
}
}
});