Javascript 一次向特定元素10添加类

Javascript 一次向特定元素10添加类,javascript,jquery,Javascript,Jquery,我想向所有.path元素添加一个类,但一次添加10个。 我有以下代码: $(".path").each(function(i) { var e = $(this); setTimeout(function(){ e.addClass('show'); }, 100); }); 这会给每个元素一次添加一个类1,但我怎么能一次添加10个呢 试试这个选项。我认为用户希望同时添加.显示所有元素.path。但现在,更好的解释是在评论中 //$(".path").

我想向所有
.path
元素添加一个类,但一次添加10个。 我有以下代码:

$(".path").each(function(i) {
    var e = $(this);

    setTimeout(function(){
        e.addClass('show');
    }, 100);
});

这会给每个元素一次添加一个类1,但我怎么能一次添加10个呢

试试这个选项。我认为用户希望同时添加.显示所有元素.path。但现在,更好的解释是在评论中

//$(".path").addClass("show);
新选项

var refreshIntervalId = setInterval(function(){
            if($(".path:not(.show)").length == 0) {
            alert("Finish");
                  clearInterval(refreshIntervalId);      
      } else {
          $(".path:not(.show)").slice(0,10).addClass("show");
          console.log("Run");
      }
}, 300);

您可以使用这样的
slice
方法

var first10Elements = $(".path").slice(0,10);
first10Elements.addClass('show');
function addClass(currentClass, newClass, counter)
{
    $("." + currentClass ).slice(counter,counter+10).addClass( newClass );
    setTimeout(function(){
        if ( counter < $(".path").size() )
        {
           addClass(currentClass, newClass, counter+10);
        }
    }, 100);
}
addClass("path", "show", 0);
您可以保留一个计数器
计数器

var counter = 0;
function addClass()
{
    if ( counter > $(".path").size() )
    {
       return false;
    }
    var first10Elements = $(".path").slice(counter,counter+10);
    first10Elements.addClass('show');
    counter = counter+10;
    setTimeout(function(){
        addClass();
    }, 100);
}
addClass();
此方法将一次向10个
path
元素添加class
show
,并在所有元素完成后停止

你可以这样概括

var first10Elements = $(".path").slice(0,10);
first10Elements.addClass('show');
function addClass(currentClass, newClass, counter)
{
    $("." + currentClass ).slice(counter,counter+10).addClass( newClass );
    setTimeout(function(){
        if ( counter < $(".path").size() )
        {
           addClass(currentClass, newClass, counter+10);
        }
    }, 100);
}
addClass("path", "show", 0);
函数addClass(currentClass、newClass、计数器)
{
$(“+currentClass).slice(计数器,计数器+10).addClass(新类);
setTimeout(函数(){
如果(计数器<$(“.path”).size())
{
addClass(currentClass、newClass、计数器+10);
}
}, 100);
}
addClass(“路径”,“显示”,0);

您可以通过将
循环的

var elem = $(".path");
for(i=0;i<elem.length;i+=10) {
 setTimeout(function(i){
   elem.slice(i,i+10).addClass("show")
 }, 100 * i, i);
}
var elem=$(“.path”);

对于(i=0;iwhat?!要将类添加10次吗?“一次10次”?什么?10个类?向
setTimeout()传递一个元素数组
…你的意思是检查是否有10个.path节点,然后添加类?多次添加同一个类没有任何区别。你想实现什么?不清楚OP在问什么,这个答案根本没有帮助。不清楚。我认为用户想要添加。同时显示所有元素。path-_-我不这么认为。请阅读
nnnnnn
的评论。我认为这是用户想要的。最近评论说:(太好了!我喜欢它。它比其他人的更干净。如果你能增加一点时间,它会有很好的效果。虽然这肯定会起作用,但我认为你也应该提供一个解决方案,考虑OP…@RayonDabre提供的代码-但是OP的代码不适合这个要求。使用.each()不能一次工作十个。因此问题…@nnnnnn实际上它必须是10。那一定是打字错误。现在更正它。@nnnnnn,我刚刚理解了这个问题!我的错:(