如何传入一个字符串以获取getJSON的函数?

时间:2013-07-06 01:47:22

标签: javascript jquery getjson

我想做点什么:

var content = "";
$.getJSON("/plants", function(result) {
    $.each(result.plants), function() {
        content += "<tr><td>"+this.plant_name+"</td></tr>";
    });
});
$("#plant_table").append(content);

当我在最后一行追加时,content为空。我猜这是因为content变量的范围,但我不熟悉如何解决这个问题。

提前致谢。

2 个答案:

答案 0 :(得分:1)

正如@dandavis和我刚才看到的另一个人回答说的那样,试试:

var content = "";
$.getJSON("/plants", function(result) {
    $.each(result.plants), function() {
        content += "<tr><td>"+this.plant_name+"</td></tr>";
    });
    $("#plant_table").append(content);
});

$ .getJSON是非阻塞/异步的,因此你的.append()发生在$ .getJSON()成功并操作名为 content 的变量之前。

答案 1 :(得分:0)

你必须把内容放在$(“#plant_table”)。append(content);在getJSON函数中。
因为如果内容不在getJSON函数中,则首先运行它。 这是同步问题。 :)