Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环槽对象并选择最后一个对象_Javascript_Jquery - Fatal编程技术网

Javascript 循环槽对象并选择最后一个对象

Javascript 循环槽对象并选择最后一个对象,javascript,jquery,Javascript,Jquery,我正在创建一个象形图,我在其中循环对象(使用interval方法),每次不满足条件时,代码都会添加.active类。但现在我想更改最后一个对象CSS,但它会在最后一个对象之前更改一个对象 function result3() { var place = (person.bmi * 100 / 35); var realPlace = parseInt(52953 * place / 100); var pictoPlace = parseInt(realPlace / 530);

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

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)
}
我尝试了.last()函数和: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)
}
这就是现在的情况:


红色的应该是最后一个。

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

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

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

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

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

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

您的代码正在将最后一个
.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)
}

请为我们分享一个最小、可验证和可复制的示例,以帮助您更好地使用DOM结构。问题是,在更改最后一个元素后,您正在添加
活动的
类。请为我们共享一个最小的、可验证的和可复制的示例,以帮助您更好地使用DOM结构。只需在
clearInterval(超时)后添加一个
return
语句即可。问题是在更改最后一个元素后,您正在添加
活动的
类。