わかりました、これが私の状況です。ユーザーが DataTable から行を入力する空のテーブルがあります。この DT はダイアログ内にあり、この DT はフィルターに応じていつでも再構築できます。データテーブルの各行にはチェックボックスがあり、他のテーブルを埋めるために選択する行を示します。「追加」ボタンを押すと、通常どおり (非表示の行を含む) 追加され、チェックボックスが無効になります。私の問題は、プレーヤーを他のテーブルから削除するときに、それぞれチェックボックスから無効になっている属性を削除する必要があることですが、機能しません。また、DT の各 tr には「jogador##」という名前のクラスがあります。ここで ## は ID です。そのため、プレーヤーを削除すると、tr を選択し、そのチェックボックスを見つけて再度有効にすることしかできません。
これらの関数は、表示されている行でのみ機能し、非表示の行では何も起こりません。
私が使用する関数は次のとおりです。
function addPlayer(){
$('input:checkbox:checked', oTable.fnGetNodes()).each(function(){
tr = $(this).parent().parent().clone();
tr.removeClass('odd');
tr.removeClass('even');
tr.find('.hide').removeClass('hide');
tr.find('.removable').remove();
c = $('#camisa').val();
cid = $('#categoria').val();
tr.find('#camisa_').val(c);
$('#c'+c+'_categoria'+cid).find('table tbody').append(tr);
$(this).attr('disabled', 'disabled');
});
reactiveSortable();
sortPlayers();
$('.dialog-players').dialog('close');
}
function removePlayer(el, id){
if(confirm("Deseja realmente excluir este jogador?")){
$(el).parent().parent().fadeOut(300, function(){
$(this).remove();
$('tr.jogador'+id, oTable.fnGetNodes()).find(':checkbox').removeAttr('disabled');
reactiveSortable();
sortPlayers();
});
}
}