我有一个JSON格式的AJAX响应,如下所示:
{
"color":"DEDE54",
"text":"<p>some text<\/p>"
}`
我想以格式化的HTML附加它。下面我只是在字符串comment
中包含所有HTML,并添加它们应该去的变量。它有效,但它看起来很乱,而且不可读。
我应该这样做吗?
appendResponse:function (response) {
if (response !== 'wait'){
var color = response.color;
var text = response.text;
var comment = '<div class="comment"><div class="avatar" style="background:#'+color+'"></div><div class="text">'+text+'<div class="date">Just now</div></div></div>';
$('#comment-form').after(comment);
} else {
Materialize.toast('Wait 20 seconds between comments', 5000, 'toast-alert');
}
}
答案 0 :(得分:0)
我认为这不是那么糟糕。 一些可能的解决方案是:
例如:
var comment = jQuery('<div/>', {
class: 'comment'
});
var avatar = jQuery('<div/>', {
class: 'avatar'
});
$avatar.css("background-color",response.color);
avatar.appendTo(comment);
.....
.....
但是,我想指出的一件事是您的代码似乎容易受到XSS的攻击:直接从Web服务中包含HTML元素并不是一个好习惯,因为您可以&# 39; t转义字符(防止XSS的更好,更简单的方法)。也许你已经知道了,但万一你没有,请照顾它