在我的页面中,有一个div,我必须从javascript中显示html。所以在javascript中,我附加了CDATA标签,以便html显示为数据。以下是我使用的代码
var htmlCode = '<h>testing html</h>';
htmlCode = '<![CDATA[' + htmlCode+ ']]>';
$('myDiv').html(htmlCode);
当我将其分配给div的html时,实际显示testing html]]>
,因为最后>
被转换为>
。任何想法如何克服这个问题
提前致谢
答案 0 :(得分:3)
CDATA
用于XML文件。这意味着里面的内容被视为文本。 jQuery的.html()
将<![CDATA[<h
变为<!--[CDATA[<h-->
,这是一条评论。然后它会忽略关闭</h>
标记,因为缺少开头标记。因此,它会显示testing html]]>
。
如果您想将HTML显示为文字,请使用.text()
代替.html()
。它会为你逃避它,因此它不会被浏览器解析。
var htmlCode = '<h>testing html</h>';
$('#myDiv').text(htmlCode);
编辑:您说您希望解析HTML ,然后使用.html
。
var htmlCode = '<h>testing html</h>';
$('#myDiv').text(htmlCode);
在任何一种情况下都需要CDATA
而不是。
答案 1 :(得分:-1)
试试这个:
var htmlCode = '<h>testing html</h>';
htmlCode = '<![CDATA[' + htmlCode+ ']]>';
$('myDiv').html(unescape(htmlCode));