2016-09-28 102 views
0

我试图使用来自jsonp文件的ajax请求输出html。当使用console.log时,我看到数据循环正常,但是当使用变量来抓取循环并在html中输出时,我只看到一个结果。我错过了什么?使用jQuery输出来自ajax/jsonp请求的html

$.ajax({ 
    url: "http://sitedotcom/blog/json", 
    dataType: "jsonp", 
    jsonpCallback: "jsonpCallback", 
    success: jsonpCallback 
}); 

function jsonpCallback(data) { 
    for (var key in data) { 
     if (data.hasOwnProperty(key)) { 
      console.log(data[key]["title"] + ", " + data[key]["entry_id"]); 
      rssData = '<h2>' + data[key]["title"] + "</h2><p>" + data[key]["blog_summary"] + "</p>"; 

     } 
     $('#blog-content').html(rssData); 
    } 
} 

回答

1

你有$('#blog-content').html(rssData);循环内....所以只有最后的结果会显示自html()替换所有内容。

使用append()代替或连接rssData每次迭代,并设置html()循环完成

+0

完美...'附加()'工作正常。赞赏。 – frshjb373

+0

要小心,虽然如果条件为第一次错误'rssData'将是未定义的......在任何其他迭代中,它是全局的并且将复制先前的内容。 Loop需要一些清理,不要使用全局 – charlietfl

0

看起来rssData超出范围,当你将它添加到你的博客#内容后再试。当你做你的控制台日志和设置你的rssData变量时,你也输出不同的数据。

如果您可以提供json布局以及您试图附加到的html布局。