对于循环,JQuery输出相同的ID 4次

时间:2016-08-30 09:56:31

标签: javascript jquery

我在JQuery中使用for()循环时遇到了一些麻烦。

我有以下代码:

for (i = 0; i < Object.keys(roster).length; i++) {
     fillMatchRoster(getUserEligible(roster[i].user_id), findUser(roster[i].user_id), findGamertag(roster[i].user_id));

     // Shows 4 different ID's
     alert(roster[i].user_id);

     // Outputs the same ID 4 times
     if(findGamertag(roster[i].user_id) != "") {
           $('.match_create_roster_playing').html("<input type='checkbox' value='" + roster[i].user_id + "'>");
     }
}

它应输出4个不同的ID作为复选框值,但我看到4相同。

HTML输出:

HTML output

更新:

findGamertag()

function findGamertag(id) {
    var user = "";

    $.ajax({ 

        url: '/data/user_info.php',
        data: {user: id},
        dataType: 'json',
        async: false,
        type: 'post',
        success: function(json) {

            user = json.gamertag;

        },
        error: function(ts) {
            console.log("Error: " + ts.responseText);
        }
    });

    return user;
}

1 个答案:

答案 0 :(得分:2)

我可以打赌,值6是最后一个用户的ID。发生这种情况,导致覆盖给定类名的每个td元素的HTML。第9行在每次迭代时都会替换内部html。

By adding .eq似乎结果是正确的。