我有一个带有body标签的JSON文本,例如:
[
{
"body":<ul>\n<li>Place item in the&nbsp;<strong>box.<\/strong,
"category":"A",
"title":"A box",
"keywords":"bread bag tag, milk bag tag, elastic band, rubber band, twist tie, rope, twine, string, hemp, ribbon, bow, burlap, staple";
}
]
(原始JSON文件的语法正确) JSON文件具有许多带有标题,正文和关键字的标签。我应该用关键字搜索(从html的输入框中),匹配然后显示标题和正文。我可以毫无问题地显示标题。我可以像这样显示身体
<ul><li>Place item in the <strong>box</strong></li>
我尝试在所有组合中使用.html()、. text(),$。parseHTML。 这是代码段:
$.getJSON(url, function(response)
{
if(response.length)
{
$('#table_item').empty();
var content = '';
for(var i = 0; i < response.length; i++)
{
if((response[i].keywords).indexOf(key) != -1)
{
content += '<div class="row"><div class="column"><div>';
content += response[i].title;
content += '</div></div><div class="column"><div id="bbody"><p>';
var bodyJson = response[i].body;
$("#bbody").html(bodyJson).text();
$("#bbody").html($("#abody").html(bodyJson)); //THIS LINE
content += '</p></div></div></div>';
}
}
$('#table_item').append(content);
}
});
我不能做的就是写出应该的样子,即项目符号和粗体:
答案 0 :(得分:0)
您需要添加一个工具来进行解码
<script src="https://www.strictly-software.com/scripts/downloads/encoder.js"></script>
然后将您的代码更改为此:
content += Encoder.htmlDecode(unescape(bodyJson));
那么您不必使用jQuery来.html()
答案 1 :(得分:0)
我为您结帐了codepen。我使用$.parseHTML
将转义的html放入节点对象,然后使用nodeValue属性从那里附加了它。
从服务器接收JSON时,请确保使用JSON.parse将其转换为JS对象而不是JSON对象。
查看$.parseHTML了解更多信息。
希望这对您有所帮助。如果需要更多帮助,请给我发消息。 :D欢呼!