我正在尝试添加和删除<span>中的类,但是尽管正在调用该函数,但removeClass无法正常工作。

setInterval(changeClass,4000);

var spanId=1;

function changeClass(){
 $('#'+spanId).addClass("hilite");
 setTimeout(remove, 1000);
 spanId++;}

function remove(){
 $('#'+spanId).removeClass("hilite");
  return true;
  }


有人能说出原因吗?

我该如何使用while循环来执行此操作,但我尝试了所有方法但无法使其正常工作

var spanSet=4;
var spanId=1;
while(spanSet > 0)
{
changeClass();
spanSet--;
}

function changeClass(){
$('#'+spanId).addClass("hilite");
setTimeout(remove, 3000);
}

function remove(){
$('#'+spanId).removeClass("hilite");
spanId++;
return true;
}

最佳答案

function changeClass(){
 $('#'+spanId).addClass("hilite");
 setTimeout(remove, 1000);
 spanId++;}


在此代码中,您应该在回调函数中执行spanId++,该函数作为参数传递给setTimeout,因为JS在完成setTimeout语句之前不会停止执行。

因此,您的代码应如下所示:

function changeClass(){
 $('#'+spanId).addClass("hilite");
 setTimeout(remove, 1000);
}

function remove(){
  $('#'+spanId).removeClass("hilite");
  spanId++;
  return true;
}

09-11 19:10