如何计算jQuery中每个循环的总时间?

时间:2012-05-12 10:57:17

标签: javascript setinterval each jquery

考虑重复循环

setInterval(function(){
$('.test').each(function(idx){
    var duration = 1000;
    $(this).delay(duration*idx);
    Some stuff here
});
}, 4000);

如何计算内部循环动态设置setInterval所花费的总时间?

在这里,如果我们有4个test类的元素,则该循环与setInterval的{​​{1}}完美匹配。如何创建变量以动态设置此值?例如,设置4000,当我们有6个元素时,依此类推。

我的问题是,我无法将6000的值用于duration*idx,因为它位于setInterval内。

2 个答案:

答案 0 :(得分:5)

您可以使用.length来计算元素数量:

var total  = $('.test').length,
    timer  = 1000,
    result = parseInt(timer*total);

然后,执行你的行动!


已编辑,以澄清.lenght对.size()的使用:

.size()方法在功能上等同于.length属性;但是,.length属性是首选属性,因为它没有函数调用的开销。

答案 1 :(得分:3)

最简单的方法是使用diff。在开始和经过时间之间。

start = new Date().getTime();
 elapsed = new Date().getTime() - start;