我试图在从$ .ajax调用中检索注释后设置一个值。当我提示commentOutput和commentSpan的值时,它们显示正确的数据。但是,当我尝试在某个范围内设置这些注释中的值时,它们不会显示,也不会显示在生成的源中。
这是javascript。您可以在控制台中看到POST的返回。您还可以看到它为跨度抓取的值,因为我已经提醒它了。
要调用此功能,只需点击猫的第一张图片,此时其他人都没有评论。
var ajaxOptions = {
type: 'POST',
dataType: 'json',
url: 'ajax/comments.php',
data: { id: photoID, action: 'GetComments' },
success: function(data) {
for(i=0; i<data.length; i++) {
var commentOutput = '<div><h4>'+data[i].comment_user+' says:</h4>';
commentOutput += '<span>'+data[i].comment_msg+'</span>';
commentOutput += '</div>';
var commentSpan = '#photo' + data[i].photo_id + ' .comments';
$(commentSpan).val(commentOutput);
$(commentSpan).delay('200').css('display','block');
}
}
};
非常感谢任何帮助,
干杯,
科迪
答案 0 :(得分:4)
方法val()
用于input
,select
和textarea
元素。
注意:对于几乎相同的问题,这是my recent answer的确切副本。您是否尝试使用某些搜索找到解决方案?
答案 1 :(得分:3)
您需要.html()
,而不是.val()
。
$(commentSpan).html(commentOutput);
此外,如果您的服务器不是HTML转义注释数据,您应该在脚本中执行此操作:
function safe(s) {
return s.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<');
}
// ...
var commentOutput = '<div><h4>'+ safe(data[i].comment_user) + ' says:</h4>';
commentOutput += '<span>' + safe(data[i].comment_msg) + '</span>';