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