jquery.post和变量范围

时间:2013-11-29 21:59:59

标签: javascript jquery

我是javascript的新手并且遇到以下问题。 我想从api.php加载一些json并使用返回的值成功填充我的GUI。

    $( '#data_button' ).click(function() {
    $.post( 'api.php', function( data ) { json = data; });
    $('#data1').empty().append( json[0].name + ' | ' + json[1].name );
});

所以我想点击一个按钮,然后通过发布一些数据来获取并将其保存到变量数据中。 因为它应该是一个对象(json对象?)我以为我可以像上面那样使用它... 但这不起作用。控制台说:找不到变量json。

任何提示?

2 个答案:

答案 0 :(得分:2)

您在帖子回调函数之外添加了附加内容。试试这个:

$( '#data_button' ).click(function() {
    $.post( 'api.php', function( data ) { 
        json = data; 
        $('#data1').empty().append( json[0].name + ' | ' + json[1].name );
     });
});

答案 1 :(得分:2)

jquery post默认以异步方式工作,这意味着行:

$('#data1').empty().append( json[0].name + ' | ' + json[1].name );

在post请求返回数据之前发生。

这应该怎么做:

$( '#data_button' ).click(function() {
     $.post( 'api.php', function( data ) { 
         $('#data1').empty().append( data[0].name + ' | ' + data[1].name );
     });
});
相关问题