このコード ブロックは、次の行を使用して、同じ HTML 要素のセットにアイテムを次から次へと詰め込んでいます$('.item-name').html(items);
。
for ( var i = 0; i < 6; i++ ) {
var items = data.result.items[arr[i]].item.toString();
$('.item-name').html(items);
}
arr[5]
したがって、すべての$('.item-name')
要素 でのみ終了します。
結果がどうなりたいかは正確には不明です。あなたが達成しようとしていることをさらに説明してください。
class="item-name"
返されたすべての結果から 6 つのランダムな結果を選択し、それらを既に存在する6 つのアイテムのそれぞれに配置しようとしている場合は、次のようにします。
function getitems() {
var arr = [];
for (var i = 0; i < 6; i++) {
arr.push(Math.floor((Math.random()*72)+1));
}
$.getJSON('items.json',function(data) {
var items = $('.item-name');
for ( var i = 0; i < 6; i++ ) {
var result = data.result.items[arr[i]].item.toString();
items.eq(i).html(result);
}
}).error(function(){
});
}
これは、6 つのランダムな結果のそれぞれが異なることを保証するものではないことに注意してください。同じ結果が繰り返される可能性があります。data.result.items はゼロベースの配列であると想定しているため、ランダムな結果に追加1
する理由もわかり0
ません。インデックスも含める必要があります。
各ランダム結果が一意であることも確認したい場合は、次のようにすることができます。
function getitems() {
var arr = [], used = {}, val;
for (var i = 0; i < 6; i++) {
do {
val = Math.floor((Math.random()*72)+1);
} while (!(val in used));
used[val] = true;
arr.push(val);
}
$.getJSON('items.json',function(data) {
var items = $('.item-name');
for ( var i = 0; i < 6; i++ ) {
var result = data.result.items[arr[i]].item.toString();
items.eq(i).html(result);
}
}).error(function(){
});
}