Jquery 在从数组中选择之前,如何确保ajax已完成每个值的设置?
因此,我有一个函数,当用户提交表单时调用该函数,然后执行jquery加载,根据他们的输入查找相应的歌曲并显示它。所有这些都很好,但我想将这些值存储在一个数组中,并对它们做一些处理(现在只是为了调试而发出警报)。我的猜测是,代码发出的是“未定义的”,因为它没有在检查数组之前等待ajax完成。那么,我该如何解决这个问题呢?代码如下:Jquery 在从数组中选择之前,如何确保ajax已完成每个值的设置?,jquery,ajax,api,loops,for-loop,Jquery,Ajax,Api,Loops,For Loop,因此,我有一个函数,当用户提交表单时调用该函数,然后执行jquery加载,根据他们的输入查找相应的歌曲并显示它。所有这些都很好,但我想将这些值存储在一个数组中,并对它们做一些处理(现在只是为了调试而发出警报)。我的猜测是,代码发出的是“未定义的”,因为它没有在检查数组之前等待ajax完成。那么,我该如何解决这个问题呢?代码如下: <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
//final step is to initialize an array outside the function, fill it in,
//then window.out on each part of the array
function callMe() {
var hold = new Array();
for (var i = 0; i < 5; i++) {
var b = $('#song'+i).val();
var c = $('#artist'+i).val();
var d = b + " " + c;
$('#'+i).html("Loading...");
$('#'+i).load('getInfo.php', {term: d}, function(data){
//I have no clue why 5 keeps popping up
hold[i] = data;
// alert("The number"+i+":"+hold[i]);
});
}
for (var i = 0; i<5; i++) {
alert(hold[i]);
}
}
$(function() {
$('form').submit(function() {
callMe();
return false;
});
});
</script>
//最后一步是初始化函数外部的数组,填充它,
//然后对数组的每个部分进行window.out
函数callMe(){
var hold=新数组();
对于(变量i=0;i<5;i++){
var b=$('#song'+i).val();
var c=$('#artist'+i).val();
变量d=b+“”+c;
$('#'+i).html(“加载…”);
$('#'+i).load('getInfo.php',{term:d},函数(数据){
//我不知道为什么5个一直出现
保持[i]=数据;
//警报(“编号“+i+”:“+hold[i]);
});
}
对于(var i=0;i您可以执行ajax请求并处理成功事件:
$.ajax({
//post URL
url: 'getInfo.php',
type: "GET",
//assumes only one form on page
data: {term: d},
//success
success: function (response) {
//do something
}
});
您可以执行ajax请求并处理成功事件:
$.ajax({
//post URL
url: 'getInfo.php',
type: "GET",
//assumes only one form on page
data: {term: d},
//success
success: function (response) {
//do something
}
});
使用.done()
使用.done()