如何删除html表的行?

时间:2015-03-08 03:46:26

标签: javascript php ajax json

我想刷新表,但每次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);

1 个答案:

答案 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
}