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
元素添加classshow
,并在所有元素完成后停止
你可以这样概括
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,我刚刚理解了这个问题!我的错:(