2016-11-22 96 views
0

我掙扎着兩個循環。我想要實現的是匹配相應的對象來糾正每個迭代。兩個嵌套對象和div選擇器的每個循環

有我的小提琴。在每個div中都有相同的輸出,它應該是1,2,3而不是3,3,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

以爲這是一個很好的開始。我想我的輸出爲第一格爲1,第二格爲2等。 – Matt

回答

2

試試這個:

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只能被.each訪問呢?我的意思是,這是我從多個URL獲取數據的圖表。我不能(或者我不知道如何)從複雜的JSON中獲取相應的數據。 – Matt

1

你的代碼僅僅是覆蓋與陣列的每個元素的每個DIV,不只是把在匹配元素每個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>