2016-03-24 8 views
0

Ich bin ein Anfänger auf Web-Design. Ich habe ein Problem wie folgt aus:Javascript Array Varaiable auf Jquery

<script type="text/javascript">  

    var searchIDs = new Array(); 
    <% searches.forEach(function (search) { %> 
    searchIDs.push('<%= search._id%>'); 
    console.log('<%= search._id%>'); 
    <% }) %>  
</script> 

...

<script> 
    for (var i = 0; i < searchIDs.length; i++) { 
     $.get('../../tCounter', { search: searchIDs[i]}, function(data){ 

      console.log(data.c); 
      $("#" + searchIDs[i]).append("<b>" + data.c + "</b>"); 
     }); 
    } 
</script> 

Auf dieser Code, ich habe einige divs, die ihre IDs von searchID generiert wurden. Ich möchte verschiedene HTML-Komponenten durch Such-IDs erreichen. Problem hier, ich kann wahre Daten mit erhalten und sehen es mit console.log (data.c); aber ich kann nicht die richtige Komponente erreichen, um die Daten zu schreiben. Es hängt immer an demselben div an. Ich warte auf Ihre Vorschläge, Danke.

Antwort

1

Das Problem ist die interne Funktion läuft async. Die Schleife ist beendet und i hat den höchsten Wert, wenn sie ausgeführt werden.

um dies der einfachste Weg jQuerys $.each() wie diese

$.each(searchIDs, function(i, id) { 
    $.get('../../tCounter', { 
    search: id 
    }, function(data) { 
    console.log(data.c); 
    $("#" + id).append("<b>" + data.c + "</b>"); 
    }); 
}); 
verwendet