У меня есть цикл for, который дает массив json и заполняет его в таблице вместе с переменными другого списка. Моя проблема в том, что я не могу получить доступ к i внутри метода get. Но у меня есть mylist и все его содержимое внутри. Я попытался привязать функцию к переменной i, используя bind (this, i), но это говорит о том, что .getJSON() не является функцией. Вот соответствующий код.Переменная цикла привязки JQuery к функции getJSON
var mylist = ["a", "b", "c"]
for (i = 0; i < mylist.length; i++) {
urlstr = "/" + mylist[i]; // Generate url
$.getJSON(urlstr, function(data) {
html = "<tr><td>" + mylist[i] + "</td><td>" + data.string[0] + "</td></tr>";
$("#tableresult").append(html); //this returns undefined for mylist[i]
console.log(i); //this returns 3 which is the length of list
});
}
Короче, мне нужно, чтобы переменные вне getJSON были доступны в пределах getJSON. Может кто-нибудь помочь? Спасибо и приветствую.
Вы, кажется, есть некоторые пограничные вопросы строки. – JLRishe
urlstr = "/" + mylist [i]; , , попробуйте это –
Проблема с 'i' является' 3' заключается в том, что вы перебираете элементы, вызывая getJSON, но до того, как вызывается первый обратный вызов, цикл уже выполняется, в результате чего 'i' составляет 3 для каждого обратного вызова. –