Javascript .eq()参数在循环中不起作用

Javascript .eq()参数在循环中不起作用,javascript,jquery,Javascript,Jquery,我有以下功能: function createLogos() { for (var l=0; l<userList().length; l++) { var username = "https://api.twitch.tv/kraken/users/" + userList()[l]; $.getJSON(username, function(data) { $(":eq(l)").append("<img src="

我有以下功能:

function createLogos() {
    for (var l=0; l<userList().length; l++) {
        var username = "https://api.twitch.tv/kraken/users/" + userList()[l];
        $.getJSON(username, function(data) {
            $(":eq(l)").append("<img src=" + data.logo +">");
        });
     }
 }
函数createLogos(){

对于(var l=0;l在您的代码中,您正在查找索引
l
而不是循环的当前索引。现在,您要通过引用变量来执行此操作,您将遇到不同的问题,因为当代码被命中时,将计算l,因此它将是错误的值

因此,您需要在JSON调用之前引用元素

function createLogos() {
    for (var l=0; l<userList().length; l++){
        var username = "https://api.twitch.tv/kraken/users/" + userList()[l],
            pic = $("#theTable .pic").eq(l);
        $.getJSON(username, function(data){
            pic.append("<img src=" + data.logo +">");
        });
     }
 }
函数createLogos(){

对于(var l=0;l您可以用
$.map()
替换
for
循环,使用
$.when()

函数createLogos(){
$.when.apply($,$.map(userList(),函数(el,索引){
变量用户名=”https://api.twitch.tv/kraken/users/“+el;
return$.getJSON(用户名、函数(数据){
$(“#theTable.pic”).eq(index).append(“”);
})
}))
}

尝试连接
:eq()

希望它能起作用

function createLogos() {
 for (var l=0; l<userList().length; l++){
    var username = "https://api.twitch.tv/kraken/users/" + userList()[l];
    $.getJSON(username, function(data){
       $(":eq("+l+")").append("<img src=" + data.logo +">");
    })
 }
}
函数createLogos(){

for(var l=0;lbecause
l
是一个字符串,不是对变量的引用,在修复问题后在for循环中使用它将是另一个错误。我怀疑您是否只想将“:eq”作为您的选择器在上面提到的更改之后,读取可能会相关。在使用:eq之前,我有以下行:$(“#theTable.pic”).eq(l)。append(“”);这也不起作用,因为l不是字符串。这是因为“臭名昭著的for循环”
function createLogos() {
 for (var l=0; l<userList().length; l++){
    var username = "https://api.twitch.tv/kraken/users/" + userList()[l];
    $.getJSON(username, function(data){
       $(":eq("+l+")").append("<img src=" + data.logo +">");
    })
 }
}