2016-11-22 3 views
0

私は2つのループごとに苦労しています。私が達成したいのは、各反復を修正するために対応するオブジェクトに一致させることです。オブジェクトとdivセレクタを持つ各ループに2つ入れ子になっています

私のフィドルがあります。各divには同じ出力があり、3,3,3ではなく1,2,3でなければなりません。

jQuery('.get-total-numbers').each(function(i, e) { 
 
    var $el = jQuery(e); 
 

 
    var json = '["1","2","3"]'; 
 
    var arr = $.parseJSON(json); 
 

 
    myjson = json; 
 
    json2 = JSON.parse(json); 
 
    jQuery.each(json2, function(index, e) { 
 
    console.log(e); 
 
    $el.text(e); 
 

 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div>

+0

あなたが対応する要素を一致させるために何もしていない@Barmar – Matt

+0

編集をありがとうございました。内側のループは配列全体を通過するだけで、現在のDIVを配列内のすべての項目に置き換えます。だから、DIVは配列の最後の要素を含んでいます。 – Barmar

+0

それは良いスタートだと思った。私は最初のdivのために1、2番目のdivなどのために私の出力をしたい – Matt

答えて

2

この試してみてください:あなたのコードはちょうどちょうどに一致する要素を入れないで、配列の各要素と、各DIVを上書きされ

jQuery('.get-total-numbers').each(function(i, e) { 
 
    var $el = jQuery(e); 
 

 
    var json = '["1","2","3"]'; 
 
    var arr = $.parseJSON(json); 
 

 
    myjson = json; 
 
    json2 = JSON.parse(json); 
 
    $el.text(json2[i]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div>

+0

なぜOPはこれを試すべきですか?あなたのソリューションについて説明し、変更した内容を変更した理由を教えてください。 –

+0

もっと複雑なjsonを扱っていて、このjsonにアクセスできるのはどうすればいいですか?つまり、複数のURLからデータを取得しているグラフのfacebookです。私は複雑なJSONから対応するデータを取得することはできません(または、わからない)。 – Matt

1

を各DIV。

内部ループjQuery.eachは必要ありません。配列の対応する要素が必要な場合は、arr[i]を使用してください。

var json = '["1","2","3"]'; 
 
var arr = $.parseJSON(json); 
 

 
jQuery('.get-total-numbers').each(function(i, e) { 
 
    var $el = jQuery(e); 
 
    $el.text(arr[i]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div> 
 

 
<div class="get-total-numbers"> 
 

 
</div>

関連する問題