2016-03-24 19 views
0

Web tasarımında bir çaylakım. Böyle bir sorun var: Bu kodun üzerindejavascript dizisi jquery üzerinde varaible

<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> 

, onların kimlikleri searchID tarafından üretilmiş olan birkaç bölüm vardır. Arama kimlikleri ile farklı html bileşenlerine ulaşmak istiyorum. Burada sorun, get ile gerçek verileri elde edebilir ve console.log ile görebiliyorum (data.c); ancak verileri yazmak için doğru bileşene ulaşamıyorum. Her zaman aynı div üzerinde ekler. Önerilerinizi bekliyorum, Teşekkürler.

cevap

1

Sorun, iç işlevin eşzamansız olarak çalışmasıdır. Döngü bittiğinde ve i, çalıştırıldıklarında en yüksek değerdedir.

bu çevrede en kolay yolu bu

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