`for循环'保持在0

时间:2012-08-02 17:54:54

标签: javascript for-loop

我遇到了循环问题。它不会将'i'值从0增加。你能帮助我吗?

这是我的代码:

var users = ["a", "b", "c"];

if (users.length > 0) {
    $(".ajax").live("submit", function(){
        for (var i=0; i < users.length; i++) {
            console.log(i);

            var forma = $(this);

            $("input[name=_session]", forma).val(users[i]);

            ajaxy(forma, function(data){
                console.log(data.status);
            });

            return false;
        }
    });
} else...

3 个答案:

答案 0 :(得分:10)

在循环的第一次迭代后返回false。我认为您需要将return false;行移出循环块。

正确地缩进代码会使这样的错误显而易见:

if (users.length > 0) {
    $(".ajax").live("submit", function () {
        for (var i = 0; i < users.length; i++) {
            console.log(i);
            var forma = $(this);
            $("input[name=_session]", forma).val(users[i]);
            ajaxy(forma, function (data) {
                console.log(data.status);
            });
            return false; // This should not be here
        }
    });
}

答案 1 :(得分:3)

for循环中的return语句导致它在进入下一次迭代之前退出。

答案 2 :(得分:2)

因为你在循环的第一次迭代时返回,所以选择。