0

我有下面这样的表格。

该表显示了数据库的竞争。

<table>
<tbody id="2"><tr><td>name1</td><td><a href="javascript:del(2)"><span>del</span></a></td></tr></tbody>
<tbody id="6"><tr><td>name2</td><td><a href="javascript:del(6)"><span>del</span></a></td></tr></tbody>
</table>

'del' 链接调用 Ajax 并从数据库中删除项目。

function del(num){
  $.post('{{path('acme_member_delScore')}}',              
    {data1: num },     function(response){
        if(response.code == 100 && response.success){//dummy check
          //do something
           var tbody = document.getElementById(num);
           var tr // i want to get tr
           tbody.removeChild(tr);  

        }
  }, "json");
}

如何刷新表?

4

4 回答 4

2

我建议不要对链接使用两个标签。只使用一个:

<table>
<tr><td>name1</td><td><span data-del="2">del</span></td></tr>
<tr><td>name2</td><td><span data-del="6">del</span></td></tr>
</table>

在一个处理程序中完成所有操作。并使用 "closest" 找到父 TR:

$('span[data-del]').click(function(){
  var obj = $(this);
  var num = $(this).attr('data-del');
  $.post('{{path('acme_member_delScore')}}',              
    {data1: num }, function(response){
    if(response.code == 100 && response.success){
      obj.closest('tr').remove();
    }
  }, "json");
});
于 2013-09-02T06:35:45.230 回答
0
$.ajax({url: {{path('acme_member_delScore')}}, type: "post",
data: { data1: num },
success: function (data, textStatus, jqXHR) {
// run code here to refresh table
}, error: function(jqXHR, textStatus, errorThrown) {
//run code here to display error
}
});
于 2013-09-02T06:23:38.023 回答
0

我的建议是,无论如何,从数据库加载时动态生成的表。所以为 tr 设置 id

<table>
<tr id="tr_2"><td>name1</td><td><a href="javascript:del(2)"><span>del</span></a></td></tr>
<tr id="tr_6><td>name2</td><td><a href="javascript:del(6)"><span>del</span></a></td></tr>
</table>

因此,在 Ajax 本身中,您可以通过以下方式删除 tr

function del(num){
  $.post('{{path('acme_member_delScore')}}',              
    {data1: num },     function(response){
        if(response.code == 100 && response.success){//dummy check
          //do something
          $("#tr_"+num).remove();
        }
  }, "json");
}
于 2013-09-02T06:34:21.743 回答
-1

尝试将删除代码放在 post 函数中。

然后它会是这样的:

function del(num){
$.post('{{path('acme_member_delScore')}}',              
    {data1: num },     function(response){
        if(response.code == 100 && response.success){//dummy check
          $(this).parent().parent().remove();
        }
  }, "json");
}

但通常我们不会这样做。

通常在加载数据时,我们会在标签中附加一个 id。说,

<tr><td>name1</td><td><a href="javascript:del(2)"><span>del</span></a></td></tr>

假设我们在数据库中有 name1 的 id,我们可以附加 id='name-1' (以及删除按钮的 id='del-1' )。然后你会更容易操作 tr 标签。代码看起来像:

$('#del-1').click(function() {
$.post('{{path('acme_member_delScore')}}',              
    {data1: num }, function(response){
        if(response.code == 100 && response.success){//dummy check
          //parse the id, get the index. 
          $('#name-1').remove();
        }
  }, "json");
});

==================================== 只要能在脚本中获取id,就可以像这样的元素

var tempId = '#name-' + 1;
$(tempId).remove();

希望这可以帮助。

于 2013-09-02T06:30:26.317 回答