2

我的表中有 ajax 链接,它将在单击时删除元素。我想确保当所有元素都被删除时,表格应该隐藏起来。我无法在 ajax 调用中添加任何事件。意思是说我不能编辑或更改任何 ajax 成功或任何其他参数或函数。我想要一些可以自行检查表格的东西,当表格主体中没有元素时隐藏表格,当输入条目时它会显示它自己

4

4 回答 4

3

您可以使用setInterval()重复调用函数来为您进行检查。然后使用.toggle()带布尔值的变体:

setInterval(function() {
    var $table = $('.tablesorter');
    $table.toggle($table.find('tbody').children().length > 0);
}, 500);

这将大约每秒检查两次(每 500 毫秒一次),您可以更改第二个参数以增加或减少检查的频率。

于 2013-04-08T13:26:23.940 回答
1

在这里,例如表类被命名为table

$('.table > tbody:empty').parent().hide();

检查所有表格:

// Call the CheckTables function after 100 milliseconds
setInterval(CheckTables, 100);

function CheckTables()
{
    $( "table " ).each(function( index ) {
      $(this).find('tbody:empty').parent().hide();
      $(this).find('tbody:not(:empty)').parent().show();
    });
}
于 2013-04-08T13:25:18.557 回答
1

试试这个

$('.className> tbody:empty').parent().hide();

或者

$('.className tr').each(function() {
    if ($(this).find('td:empty').length) $(this).remove();
});​
于 2013-04-08T13:25:37.420 回答
1

试试这个:

$(document).ajaxComplete(function() {
   $('table').each(function(){
      if($('tbody:empty',this))
         $(this).hide();
      else $(this).show();
   });
 });
于 2013-04-08T13:37:00.470 回答