我是网页设计的新手。我有这样的问题:
<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>
在这段代码中,我有一些div,它们的id由searchID生成。我想通过搜索ID来访问不同的html组件。问题在这里,我可以使用get获取真正的数据并使用console.log(data.c)查看;但我无法达到正确的组件来写入数据。它总是附加在同一个div上。我在等你的建议, 感谢。
答案 0 :(得分:1)
问题是内部函数运行异步。循环结束,i
在运行时处于最高值。
最简单的方法是使用jquery&#39; s $.each()
这样
$.each(searchIDs, function(i, id) {
$.get('../../tCounter', {
search: id
}, function(data) {
console.log(data.c);
$("#" + id).append("<b>" + data.c + "</b>");
});
});