【问题标题】:Output HTML string from Json with jQuery [duplicate]使用 jQuery 从 Json 输出 HTML 字符串 [重复]
【发布时间】:2015-12-08 14:26:49
【问题描述】:

使用 jQuery 我正在尝试输出包含大量 HTML 的 Json 数据。这导致 HTML 以纯文本形式打印出来,因为它在其周围加上了引号。我想要它作为格式化的 HTML。我怎样才能做到这一点?这是来自 Reddit API 的 Json 数据。

我的 jQuery

    $.getJSON('https://www.reddit.com/r/GlobalOffensive/.json', function(data) {

    $.each(data.data.children.slice(0,5), function(key, val) {

        longHTML += '<div class="post">'+val.data.selftext_html+'</div><hr>'

    });

      $(".reddit-content").html(longHTML);

});

结果

<div class="post">"<!-- SC_OFF --><div class="md"><h3><a href="#fnatic-logo"></a> Fnatic 0-2 <a href="#vp-logo"> ... etc etc ... <hr/> </div><!-- SC_ON -->"</div>

【问题讨论】:

  • 问题在于 API 返回的 HTML 中所有特殊字符都替换为它们的实体。所以它们会按字面意思显示。我不确定他们为什么要这样做。
  • 来自 reddit API documentation:注意:HTML 字符串将被转义。您必须取消转义才能获得原始 HTML。
  • $.getJSON('reddit.com/r/GlobalOffensive/.json', function(data) { var longHTML = ""; $.each(data.data.children.slice(0,5), function(key, val) { var temp = $.parseHTML(val.data.selftext_html); if(temp){ longHTML += '
    ' + $(temp).text() + '

    '; }else{ longHTML += '
    '+temp+'

    ' } }); $(".reddit-content").html( longHTML); });看到这个小提琴:jsfiddle.net/hexjrbcb

标签: javascript jquery html json


【解决方案1】:

这很简单:

$(".reddit-content").html($(longHTML));

通过将 HTML 代码传递给 jQuery(),它会从中创建相应的 DOM。

【讨论】:

  • .html() 函数会自行完成。您无需先致电jQuery()
  • 你当然是对的。不知何故,我在想.append(),即使在那里我也不确定是否需要先将它传递给 jQuery()...
  • 不,那也不需要
猜你喜欢
  • 2018-09-17
  • 2011-08-30
  • 1970-01-01
  • 2011-11-24
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2021-01-27
相关资源
最近更新 更多