隐藏表当其正文中没有元素时

时间:2013-04-08 13:23:40

标签: javascript jquery html dom

我的表中有ajax链接,会删除点击的元素。我想确保当删除所有元素时,表应该隐藏自己。我无法在ajax调用上添加任何事件。意思是说我无法编辑或更改任何ajax成功或任何其他参数或功能。我想要一些能够继续检查表格的东西,当表格中没有元素时隐藏表格,当一个条目出现时它将显示自己的

4 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分: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();
    });
}

答案 2 :(得分:1)

试试这个

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

$('.className tr').each(function() {
    if ($(this).find('td:empty').length) $(this).remove();
});​

答案 3 :(得分:1)

试试这个:

$(document).ajaxComplete(function() {
   $('table').each(function(){
      if($('tbody:empty',this))
         $(this).hide();
      else $(this).show();
   });
 });