javascript - 从 JQuery 函数返回值时卡住

标签 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);

最佳答案

问题在于 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);
});

关于javascript - 从 JQuery 函数返回值时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354521/

相关文章:

javascript - IvoryCKEditorBundle uploadimage无法解析JSON响应

javascript - Jquery - 检查 : If scroll possible (div with overflow:scroll)

jquery - 焦点在几个<p :inputNumber>之间自动跳转

JavaScript/jquery ajax : what happens with inputs having same name attribute

javascript - 如何使用 javascript 值设置 HTML 输入字段的值

javascript - 在 javascript 中创建和扩展对象会覆盖基础对象的变量

javascript - 如何从 Node js服务器向客户端显示shell脚本的结果?

javascript - jQuery 上传文件插件 - 上传后如何重新加载页面?

javascript - 如何根据键从对象文字返回值?

jquery - 获取 jQuery 自动完成以将结果显示为链接