$ getJSON i problem z pętlą
Ma to na celu wypełnienie tabeli ilością wyników zwracanych z zapytania API MediaWiki/api.php?action=query&list=querypage&qppage=BrokenRedirects
. Liczba wyników jest następnie dodawana do identyfikatora, na przykład:
// BrokenRedirects
$.getJSON('/api.php?action=query&list=querypage&qppage=BrokenRedirects&format=json', function (data) {
$('#BrokenRedirects').text(data.query.querypage.results.length);
});
Ale gdy powtarzane jest kolejne 7 razy, stworzyłem argumenty dla qppage w tablicy i użyłem pętli for do skrócenia ogólnego kodu.
var array = ['BrokenRedirects',
'DoubleRedirects',
'Unusedcategories',
'Unusedimages',
'Wantedcategories',
'Wantedfiles',
'Wantedpages',
'Wantedtemplates'];
for (var i = 0; i < array.length; i++) {
$.getJSON('/api.php?action=query&list=querypage&qppage=' + array[i] + '&format=json', function (data) {
$('#' + array[i]).text(data.query.querypage.results.length);
});
}
Pierwsza, nieotwarta wersja działa. Ale kiedy dodałem pętlę, nie. The$getJSON
część jest wykonywana, ale później nie można dodać wynikowych danych do identyfikatora. Uruchomiłem go za pomocą JSLint, który oprócz narzekania na funkcje w pętli i deklarowaniavar i
zvar array
zwrócił niewiele pomocy. Jestem stosunkowo niedoświadczony w javascript, więc myślę, że być może zmiennej nie można użyć dwukrotnie w pętli? Poza tym może coś wspólnego z używaniem identyfikatora w pętli?