【问题标题】:Output html from ajax/jsonp request using jQuery使用 jQuery 从 ajax/jsonp 请求输出 html
【发布时间】:2017-02-06 13:58:45
【问题描述】:

我正在尝试使用来自 jsonp 文件的 ajax 请求输出 html。使用console.log 时,我看到数据循环正常,但是当使用变量获取循环并以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);
    }
}

【问题讨论】:

    标签: javascript jquery html ajax jsonp


    【解决方案1】:

    循环中有$('#blog-content').html(rssData);....所以只有最后一个结果会显示,因为html() 替换了所有内容。

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

    【讨论】:

    • 请注意,如果第一次条件为假,rssData 将未定义...在任何其他迭代中,它是全局的,并且会复制先前的内容。循环需要一些清理,不要使用全局
    【解决方案2】:

    当您将 rssData 添加到您的#blog-content 时,它似乎超出了范围。此外,在执行控制台日志和设置 rssData 变量时,您正在输出不同的数据。

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

    【讨论】:

      猜你喜欢
      • 2011-09-22
      • 2013-03-28
      • 2011-07-11
      • 2012-07-29
      • 2012-07-11
      • 2010-12-22
      • 2013-10-20
      • 1970-01-01
      相关资源
      最近更新 更多