我的代码是这样的,我正在尝试使用jQuery函数的结果填充表单字段。但它不起作用。我在这做错了什么?它将结果很好地记录到控制台,包括哈希和数组:
jQuery(document).ready(function() {
new GetBrowserVersion().get(function(result, components){
console.log(result); //a hash
console.log(components); //an array
});
var unique_id = result;
$('#unique_id').val(unique_id);
});
我得到的是:
Uncaught ReferenceError: result is not defined
后跟散列和数组。
答案 0 :(得分:5)
您正在关闭该函数,并且该值不可用(在范围内)用于更新输入:
jQuery(document).ready(function() {
new GetBrowserVersion().get(function(result, components){
console.log(result); //a hash
console.log(components); //an array
var unique_id = result;
$('#unique_id').val(unique_id);
});
});
顺便说一下 - 您可以直接在函数中使用参数,而无需创建result ::
的中间变量jQuery(document).ready(function() {
new GetBrowserVersion().get(function(result, components){
console.log(result); //a hash
console.log(components); //an array
$('#unique_id').val(result);
});
});
答案 1 :(得分:1)
如果您在其他地方确实需要result
,则可以使用闭包来获取get()
之外的值。
var result;
new GetBrowserVersion().get(function(r, components){
console.log(r); //a hash
console.log(components); //an array
result = r; // assigns to the result in the enclosing scope, using a closure
});
var unique_id = result;
$('#unique_id').val(unique_id);