これは、MediaWikiAPIクエリから返される結果の量をテーブルに入力するためのもの/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に比較的慣れていないので、おそらく変数をループ内で2回使用することはできないと思いましたか?それ以外に、ループ内でIDを使用することと関係があるのでしょうか。