我如何使用通过jQuery获得的变量?

时间:2016-09-27 21:59:48

标签: javascript jquery

我的代码是这样的,我正在尝试使用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

后跟散列和数组。

2 个答案:

答案 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);