【问题标题】:Appending HTML content via jQuery通过 jQuery 附加 HTML 内容
【发布时间】:2019-11-10 13:34:20
【问题描述】:

我有一个使用 jQuery 按需加载 cmets 的页面。我有<div id="comments">,我在其中通过格式化预定义模板来附加 HTML。

我的模板如下: <div class="entry clearfix" style="position: absolute; left: 1oopx; top: 20px;"> <div class="comment-image"> <img class="image_fade" src="<#ImageUri#>" alt="<#Header#>"> </div> <div class="entry-title"> <h2><a href="/Blog/Coments/<#Uri#>"><#Header#></a></h2> </div> <ul class="entry-meta clearfix"> <li><i class="icon-calendar3"></i> <#CommentDate#></li> <li><i class="icon-user"> <#Handle#></i></li> </ul> <div class="entry-content"> <#Body#> </div> </div>;

我使用 jQuery GET 来获取评论内容,然后我将内容替换如下:

html += blogitemHtml .replace(/<#ImageUri#>/g, item.ImageUri) .replace(/<#Header#>/g, item.Header) .replace(/<#Uri#>/g, item.FriendlyUri) .replace(/<#CommenDate#>/g, item.PublishedOn) .replace(/<#Handle#>/g, item.Handle) .replace(/<#Body#>/g, item.Intro);

$("#comments").append(html);

问题是 Body 中的数据也是带有标签的 HTML 文档。因此,我看到的不是格式化文本,而是 HTML 标记。

我知道我可以使用 jQuery html() 函数,但它会更改 div 的内容,我想在其中添加新内容。

我怎样才能添加内容并以 HTML 标记应有的格式化方式显示它。

我应该看到的例子:

这是我的第一个评论。我想感谢你video

相反,我看到: &lt;p&gt; This is my &lt;b&gt;first&lt;/b&gt; comment. And I would like to thank you with this &lt;a href="https://youtube.com"&gt;video&lt;/a&gt;.

【问题讨论】:

    标签: javascript jquery html append


    【解决方案1】:

    尝试使用parseHTML() 将字符串解析为DOM 节点数组。

    var htmlNodes = $.parseHTML( html);
    $("#comments").append(htmlNodes );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多