Javascript for循环中的多个计数器

时间:2011-12-01 21:52:04

标签: javascript jquery for-loop

在我撕掉我的头发并在调试方面走错路之前。有人可以确认此代码将按预期执行。 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时,没有任何反应,我收到此错误:

  

Uncaught SyntaxError:意外的令牌;在'for()'行......

3 个答案:

答案 0 :(得分:41)

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

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

for

中只能有三个“语句”
for( [init]; [test]; [increments]) { [block] }

要执行多个[inits][increments],您必须使用有时magical, but oft forgotten, comma operator

答案 1 :(得分:13)

那里有太多的分号

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){

答案 2 :(得分:2)

您在代码中犯了一些语法错误,如果您使用static code analysis tools such as the lovely JSHint,则可能很容易发现错误。

此外,您应该进一步了解JavaScript中comma operator的使用情况,我们的网站有a few answers on it already