我想刷新表,但每次setinterval激活append再次插入相同的行时,我希望那些行被删除为新的
$(document).ready(function()
{
function actualizar()
{
$.ajax({
type: "GET",
url: "editinplace.php?tabla=1"
})
//Vector
.done(function(json)
{
json = $.parseJSON(json)
for(var i=0;i<json.length;i++)
{
$('.editinplace').append
(
"<tr><td class='id'>"
+json[i].id
+"</td><td>"
+json[i].nombre
+"</td><td>"
+json[i].apellidos
+"</td><td>"
+json[i].telefono
+"</span></td><td class='editable' data-campo='status'><span>"
+json[i].status
+"</span></td></tr>");
}
//
});
}
setInterval(actualizar, 6000);
答案 0 :(得分:2)
.append
会附加内容。
执行$('.editinplace tr').remove();
之类的操作以在追加之前删除所有现有行,或者完全替换.editinplace:
$('.editinplace').replaceWith("<table class='editinplace'>"
+ "<tr><td class='id'>"
...
+ "</table>");
有关详细信息,请参阅http://api.jquery.com/remove/和http://api.jquery.com/replacewith/。
参考注释,为了测试存在,我将向行添加数据属性,以便您可以轻松地搜索它们。例如。将"<tr><td class='id'>"
替换为"<tr data-id='" + json[i].id + "'><td class='id'>"
。
然后在你的for()循环中,只需检查它是否存在:
if ($('.editinplace tr[data-id="' + json[i].id + '"]').length == 0) {
// append
}