Javascript for循环中的多个计数器

在我将头发撕掉并在调试方面走错路之前。 有人可以确认此代码将按预期执行。 IE浏览器。 动画5个div到不同的位置:

var i, j, k; $('#menuButton').click(function(){ for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){ $('.spinner #item' + i).animate({ left: '+=' + j, bottom: '+=' + k }, 500, function() { // Animation complete. }); } }); 

当我点击#menuButton ,没有任何反应,我收到此错误:

未捕获的SyntaxError:意外的令牌; 在’for()’行……

你有一些分号,你想要逗号:

 for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30) { /* do work */ } 

你的内部应该只有三个“陈述”

 for( [init]; [test]; [increments]) { [block] } 

要做多个[inits][increments]你必须使用有时神奇的,但经常被遗忘的逗号运算符

那里有太多的分号

 for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){ 

应该

 for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30){ 

如果您使用静态代码分析工具(如可爱的 JSHint),那么您在代码中发现了一些您可能很容易发现的错误。

另外,您应该进一步了解JavaScript中逗号运算符的使用,我们的站点已经有了一些答案 。