这是用MediaWiki API查询返回的结果数量填充表格/api.php?action=query&list=querypage&qppage=BrokenRedirects
。然后结果的数量被添加到ID,例如:
// BrokenRedirects
$.getJSON('/api.php?action=query&list=querypage&qppage=BrokenRedirects&format=json', function (data) {
$('#BrokenRedirects').text(data.query.querypage.results.length);
});
但是因为它是被重复另外7次我为qppage参数到一个数组,用于一个循环,以缩短整体的代码。
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);
});
}
第一个unlooped版本的作品。但是当我添加一个循环时,它没有。 $getJSON
部分执行,但它然后无法将结果数据添加到id。我通过JSLint运行它,除了抱怨循环中的函数,并且宣布var i
和var array
没有什么帮助。我对JavaScript相对缺乏经验,所以也许一个变量不能在循环中使用两次?除此之外,也许有关在循环中使用ID的事情?
[使用setTimeout和在for循环中的整数](可能重复http://stackoverflow.com/questions/13731759/using-settimeout-and-an-integer- for循环) – 2013-03-11 20:20:42
[Javascript闭包内循环 - 简单实用示例]的可能重复(http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – Bergi 2013-03-11 20:21:13
getJSON是异步调用 REFER:[使用同步ajax调用] [1] [1]:http://stackoverflow.com/questions/3419026/jquery-getjson-function-timing-issue – Girish 2013-03-11 20:34:33