我创建了一个for循环,该循环循环了元素出现在容器中的次数. for循环从HTML中获取一些数据,并创建一个JSON url,然后将返回一个值.然后应将该值添加到HTML的适当位置.
问题似乎是for循环在进行所有Ajax调用之前完成,因此仅将最后一个值添加到HTML.我以为可以确保readystate等于4,但是该解决方案不起作用.我还尝试将完整而不是成功用作Ajax事件.有什么见解吗?这是我的代码.
for(var index = 0; index < $('#wizSteps #step6 label').length; index++){
var priceCount;
console.log(index);
var currentSelect = $('#wizSteps #step6 label[data-pricepos="'+index+'"]');
url = 'http://www.thesite.com/api/search.json?taxonomy=cat3435' + currentSelect.find('input').attr('name');
jQuery.ajax({
url: url,
dataType: "JSON",
success: function( data ){
var totalResult = data.totalNumberOfResults;
console.log(currentSelect);
currentSelect.find('.itemCount').text(totalResult);
}
});
}
解决方法:
看起来您不一定需要按顺序完成请求,您只需要以一种可行的方式跟踪currentSelect.为此,您可以使用context ajax选项:
for (var index = 0; index < $('#wizSteps #step6 label').length; index++) {
var currentSelect = $('#wizSteps #step6 label[data-pricepos="' + index + '"]');
url = 'http://www.thesite.com/api/search.json?taxonomy=cat3435' + currentSelect.find('input').attr('name');
jQuery.ajax({
url: url,
dataType: "JSON",
context: currentSelect,
success: function (data) {
var totalResult = data.totalNumberOfResults;
this.find('.itemCount').text(totalResult);
}
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。