以下是您的代码中发生的事情:
数组“element”已初始化。
使用成功回调函数进行AJAX调用
在等待AJAX运行的时候,它会继续执行其余的代码和警报元素[1],但它还不存在
成功回调运行并填充数组“element”。
您可以考虑使用全局变量来解决此问题:
var element = [];
function getEle (id) {
$.ajax({
url: 'slides.php',
type: 'POST',
data: {"id": id},
success: function(data) {
var content = data;
element[0] = id; // the global "element" is set
element[1] = content;
}
});
}
// element[0] will exist now, but only after the AJAX call is complete
或者,您可以将AJAX转换为同步调用:
function getEle (id) {
var element = [];
$.ajax({
async: false, // forces synchronous call
url: 'slides.php',
type: 'POST',
data: {"id": id},
success: function(data) {
var content = data;
element[0] = id;
element[1] = content;
}
});
alert(element[1]); // now it is set
return element;
}
我能看到的唯一另一个选择是将所有内容都绑定在“成功”回调中,你已经发现它可以正常工作。