从JQuery函数中返回一个值

时间:2014-08-17 23:16:34

标签: javascript jquery

希望有人可以提供帮助。我正在学习JQuery,我一直试图从这个函数中返回一个值。

要解决我在控制台上登录数据是通过JSON正确提取的问题,那就是,它只是没有返回的值。

非常感谢任何建议!

    // Get initial categories
var catstr = $.getJSON("scripts/json-categories.php",displayCategoryData);

 function displayCategoryData(data) {
    catResult = data;
    var str ='';
    for(var i=0; i<data.length;i++) {
       str+= '<option value="' + data[i].id + '">' + data[i].category + '</option>';
    }
    console.log(str);
    return str;
 }

$('#category1').html(catstr);

1 个答案:

答案 0 :(得分:1)

问题是getJSON是异步的,因此无法返回您想要的内容,因为事实上它将在未来运行。

相反,你必须在回调函数中使用返回值做你想做的事情:

$.getJSON("scripts/json-categories.php", function displayCategoryData(data) {
    catResult = data;
    var str ='';
    for(var i=0; i<data.length;i++) {
       str+= '<option value="' + data[i].id + '">' + data[i].category + '</option>';
    }
    console.log(str);
    $('#category1').html(str);
});