我有一个可以正常工作的 AJAX 函数,但我似乎无法访问我在页面后面的函数中声明的变量。如果您查看下面的代码,您会看到我提醒函数中的变量 number_rows 有效,但是当我尝试在函数外部记录它时,它返回为“未定义”。
var newData = "user_id=" + id;
$.ajax({
type: 'POST', // HTTP method POST or GET
url: 'ajax.php', //Where to make Ajax calls
dataType:'text', // Data type, HTML, json etc.
data:newData, //post variables
success:function(response){
var number_rows = response;
alert(number_rows);
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr + " " + ajaxOptions + " " + thrownError); //throw any errors
}
});
console.log(number_rows);
我知道我的范围可能已经关闭。我试图在成功函数中移动我的所有代码,但这会导致一堆其他问题,所以最简单的方法是将响应变量作为一个全局变量,我可以在页面的其余代码中使用它。我也尝试过这样的事情:
success:function(response){
$('body').append('<span class="ajax_response" id="' + response + '"></span>');
}
var number_rows = $('.ajax_response').attr('id');
console.log(number_rows);
但由于某种原因,它不能以这种方式立即获取 ID 值。我可以确认跨度确实使用正确的 ID 值生成,但由于某种原因它不能正确处理它。对此的任何帮助将不胜感激。
谢谢!