我有以下jQuery代码:
编译时出现错误:
$.ajax({
url: 'somefile.php',
type: "POST",
data: "",
dataType: "json",
async: false,
success: function (data) {
var var1 = something;
var var2 = something;
var var3 = something;
var var4 = something;
for (var i = 0; i < data.length; i++) {
$('.somediv').html('');
$('.somediv').append('Somehtml');
}
some_function_declared_later(var1, var2, var3, var4);
}
编译时出现错误:
'var1','var2','var3' 和 'var4' 超出范围
。然而,我看不出问题,因为它们在相同的函数中声明并使用。
请帮忙!
更新:
这与之后声明的some_function_declared_later
是否在当前函数外有关吗?
var
总是在函数作用域(或全局作用域,如果在任何函数之外使用)创建变量。 - T.J. Crowderdata.length
恰好为0,则它们都将具有值undefined
。我建议无论它是否在JS中起作用,声明循环内的变量都是不好的做法,特别是如果您随后在循环外部使用它们。 - nnnnnn