我在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输出:
更新:
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/