首页 > 解决方案 > 循环槽对象和选择最后一个对象

问题描述

我正在创建一个象形图,在其中循环对象(使用间隔方法)并且每次不满足条件时,代码将添加 .active 类。但是现在我想更改最后一个对象 CSS,但它会在最后一个之前更改。

我已经尝试过 .last() 函数和 :last 选择器,但它仍然选择最后一个。

function result3() {
  var place = (person.bmi * 100 / 35);
  var realPlace = parseInt(52953 * place / 100);
  var pictoPlace = parseInt(realPlace / 530);
  var i = 0;

  var timeOut = setInterval(function() {
    if (i == pictoPlace) {
      $(".active:last").css("color", "red");
      clearInterval(timeOut);
    }

    $(".fa-male").eq(i).addClass("active");
    i++

  }, 20)
}

现在是这样的:

红色的应该是最后一个。

标签: javascriptjquery

解决方案


您的代码正在设置最后一个.active红色,然后添加另一个.active元素。

只需移动将类设置为setTimeOut函数中第一个的代码:

var timeOut = setInterval(function(){
    $(".fa-male").eq(i).addClass("active");
    if (i == pictoPlace){       
        $(".active:last").css( "color", "red" );
        clearInterval(timeOut);
        }
        i++ }
        ,20)
}

推荐阅读