这是用从 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 的参数放入一个数组中,并使用了一个 for 循环来缩短整体代码。
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);
});
}
第一个未循环的版本有效。但是当我添加一个循环时它没有。该$getJSON
部分执行,但随后无法将结果数据添加到 id。我通过 JSLint 运行它,除了抱怨循环中的函数并声明返回的帮助很少var i
。var array
我对javascript相对缺乏经验,所以认为一个变量可能不能在循环中使用两次?除此之外,也许与在循环中使用 id 有关?