我在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个相同的ID。

HTML输出:

javascript - For循环JQuery输出相同的ID 4次-LMLPHP

更新:

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;
}

最佳答案

我敢打赌,值6是最后一个用户的ID。发生这种情况是因为您使用给定的类名覆盖了每个td元素的HTML。第9行实际上是在每次迭代中替换内部html。

By adding .eq看来结果是正确的。

关于javascript - For循环JQuery输出相同的ID 4次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39224351/

10-12 06:40