0

我想做类似的事情:

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

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

提前致谢。

4

2 回答 2

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的变量之前。

于 2013-07-06T01:51:45.173 回答
0

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

于 2013-07-06T01:54:47.427 回答