我想做点什么:
var content = "";
$.getJSON("/plants", function(result) {
$.each(result.plants), function() {
content += "<tr><td>"+this.plant_name+"</td></tr>";
});
});
$("#plant_table").append(content);
当我在最后一行追加时,content
为空。我猜这是因为content
变量的范围,但我不熟悉如何解决这个问题。
提前致谢。
答案 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函数中,则首先运行它。
这是同步问题。 :)