Добавление HTML-контента через jQuery - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть страница, где я загружаю комментарии по запросу с помощью jQuery. У меня есть <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.

Пример, который я должен увидеть:

Это мой первый комментарий,И я хотел бы поблагодарить вас с этим видео

Бу вместо этого я вижу: <p> This is my <b>first</b> comment. And I would like to thank you with this <a href="https://youtube.com">video</a>.

1 Ответ

1 голос
/ 10 ноября 2019

Попробуйте использовать parseHTML(), чтобы разобрать строку в массив узлов DOM.

var htmlNodes = $.parseHTML( html);
$("#comments").append(htmlNodes );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...