テーブルに ajax リンクがあり、クリックすると要素が削除されます。すべての要素が削除されたときにテーブルが非表示になるようにしたいと思います。ajax 呼び出しにイベントを追加できません。つまり、ajax の成功やその他のパラメーターや関数を編集または変更することはできません。テーブルを独自にチェックし続け、テーブル本体に要素がない場合はテーブルを非表示にし、エントリが作成されるとそれ自体を表示するものが必要です
質問する
980 次
4 に答える
3
setInterval()
関数を繰り返し呼び出して、チェックを行うことができます。次に.toggle()
、ブール値を取るバリエーションを使用します。
setInterval(function() {
var $table = $('.tablesorter');
$table.toggle($table.find('tbody').children().length > 0);
}, 500);
これにより、毎秒約 2 回 (500 ミリ秒ごとに 1 回) チェックされます。2 番目の引数を変更して、チェックの頻度を増減できます。
于 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 に答える