我的项目中有一个地图页面,其中显示了地图缩略图列表。当我点击" ShowMap"按钮打开一个更大的地图,并加载一个评论列表并显示在大地图上方。我用AJAX和jQuery做到了。还有一个" CloseMap"隐藏包含大地图和评论的div的按钮。 " ShowMap"因为它加载了正确的地图和链接到该地图的正确评论。 问题是,如果我使用APPEND,它当然会附加不同地图的注释。因此,如果我打开MAP1,它会打开MAP1并附加MAP1的注释。然后我关闭MAP1并打开MAP2。它正确打开MAP2并加载MAP2的注释,但它将它们附加在MAP1的注释下。我想改为替换内容。我已经尝试过类似$(" #output")。html(row,idU,text_map)但它不起作用:(
function show_comments(i)
{
$.ajax({
url: 'api.php',
data: {idMap: i},
dataType: 'json',
success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var idU = row[1];
var text_map = row[3];
$('#output').append("<b> idU: </b>"+idU+"<b>text </b>"+text_map)
.append("<hr />");
}
}
});
};
答案 0 :(得分:1)
如果您要替换内容,请先调用html()
并在其中传递空字符串,删除以前的内容:
$('#output').html(""); // this will remove previous content of #output
$('#output').append("<b> idU: </b>"+idU+"<b>text </b>"+text_map)
.append("<hr />");
答案 1 :(得分:0)
您可以将新的html标记放入带有Id的div中,然后在另一个调用中删除它并再次附加它,它将开始为您工作,因此您的代码将如下所示:
if($('#test'))
$('#test').remove();
$('#output').append("<div id='test'><b> idU: </b>"+idU+"<b>text </b>"+text_map+"</div>")