我有一个json对象,其值为html with styles。我尝试使用jquery append
将其包含在我的html中。
该值正在追加,但它没有转换为普通DOM,而是将整个事物追加为字符串。
这是我的JSON对象值:
var obj = {
content : "<p><linkrel="stylesheet"type="text/css"href="http:<p><styletype="text/css"><br/>.wrap{<br/> background-color:#F6F6F6;<br/>}<br/></style></p><p><divclass="wrap"><br/> </div></p>"
}
这是我试过的:
HTML:
<div id='container'></div>
JS:
$('#container').append(obj.content);
输出应该是dom的一部分,而是将整个事物打印为字符串。
答案 0 :(得分:4)
你能尝试做什么:
$('#container').append($(obj.content));
那应该有用。因为你只是想附加文本而不是DOM元素
另一个变化是响应JSON,因为它有p
个标记和htmlescaped
元素。因此,您可能还需要更改响应,例如,
style
的{{1}}标记。希望有所帮助!
答案 1 :(得分:2)
你可以这样做......
var obj = {
content : '<p><style>.wrap{color:red}</style><div class="wrap">aa</div></p>'
}
$('span').append($(document.createElement('div')).html(obj.content).text());
fiddler:https://jsfiddle.net/suscmguy/
您的obj.content
似乎有无效/不完整的编码
希望这会有所帮助......
答案 2 :(得分:1)
您的字符串格式错误,因为当我用以下代码替换您的代码时,它完全正常
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<div id='tester'></div>
<script >
var obj = {
content : "<ul><li>coffee</li><li>tea</li></ul>'"
};
$('#tester').append(obj.content);
</script>
</body>
</html>
我的意思是说你认为你正在添加一个HTML代码,但由于你的字符串格式错误,javascript认为它是一个简单的字符串,这就是为什么你看到一个字符串被添加。