2016-11-22 2 views
0

Ich habe mit zwei Schleifen kämpfen. Was ich erreichen möchte, ist das entsprechende Objekt, um jede Iteration zu korrigieren.Zwei verschachtelte für jede Schleifen mit Objekten und div Selektoren

Da ist meine Geige. In jedem div gibt es die gleiche Ausgabe, es sollte 1,2,3 statt 3,3,3 sein.

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

Vielen Dank für das Bearbeiten @Barmar – Matt

+0

Sie sind nicht alles entsprechenden Elemente passen zu tun. Die innere Schleife durchläuft gerade das gesamte Array und ersetzt das aktuelle DIV durch jedes Element im Array. Wenn es fertig ist, enthält das DIV das letzte Element des Arrays. – Barmar

+0

Gut gedacht, es war ein guter Anfang. Ich möchte, dass meine Ausgabe 1 für das erste div, 2 für das zweite div usw. ist. – Matt

Antwort

2

Try this:

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

Warum sollte das OP dies versuchen? Kannst du deine Lösung erklären und warum hast du geändert, was du geändert hast? –

+0

Was ist, wenn ich mit komplexeren JSON und dieser JSON kann nur durch .Each zugegriffen werden? Ich meine, es ist graph facebook, wo ich Daten von mehreren URLs abrufe. Ich kann (oder ich weiß nicht wie) entsprechende Daten aus komplexem JSON holen. – Matt

1

Ihr Code nur wird jedes DIV mit jedem Element des Arrays zu überschreiben, setzen nicht nur das passende Element in jeder DIV.

Sie benötigen die innere jQuery.each Schleife nicht. Wenn Sie das entsprechende Element des Arrays möchten, verwenden Sie einfach 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>

Verwandte Themen