如何通过ajax调用删除表行并追加其他行?

时间:2011-08-04 14:03:43

标签: ajax json jsp jquery

大家好我想发送一个ajax调用,成功后我想删除表中的所有元素,并根据成功返回的数据追加新元素

我有这个方法来调用ajax调用数据:

$(document).ready(function(){setInterval(function(){
      $.ajax({
          type: "POST",
          url: '/tweety-0.0.1-SNAPSHOT/twitter/tiles/feeds',
          data: {username: $("#username").val()},
          success: function(data){
            function(){
                for(i=0;i<data.length;i++){
                    $.childern("#followerFeeds").remove()
                    $("#followerFeeds").append("<tr><td>"+data[1].message+ "</td></tr>"
                             +"<tr><td>"+data[1].messageDate+"</td></tr>");
                    }

                }
          }
        });
        }, 3000);

在页面中,这是我需要重新填充的表格:

<table id="followerFeeds" style='width: 100%'>
        <tr></tr>
        <c:forEach var="msg" items="${userFeeds}">
        <tr><td>${msg.message}</td></tr>
        <tr><td>${msg.messageDate}</td></tr>
        </c:forEach>
    </table> 

2 个答案:

答案 0 :(得分:2)

将您的success回调更改为:

success: function(data){
            function(){
                $("#followerFeeds").html('');
                for(i=0;i<data.length;i++){
                    $("#followerFeeds").append("<tr><td>"+data[1].message+ "</td></tr>"
                             +"<tr><td>"+data[1].messageDate+"</td></tr>");
                    }

                }
          }

1)你拼写错误children。 2)我认为清除html看起来更简单

答案 1 :(得分:1)

试试这个

$(document).ready(function(){setInterval(function(){
      $.ajax({
          type: "POST",
          url: '/tweety-0.0.1-SNAPSHOT/twitter/tiles/feeds',
          data: {username: $("#username").val()},
          success: function(data){
            function(){
                var table = $("#followerFeeds");
                table.find("tr").remove();

                for(i=0;i<data.length;i++){
                    table.append("<tr><td>"+data[1].message+ "</td></tr>"
                             +"<tr><td>"+data[1].messageDate+"</td></tr>");
                    }
                }
          }
        });
        }, 3000);