Javascript 从DOM刷新jQuery数据表-无AJAX
我有一个完全由服务器预先填充的HTML表;页面上没有AJAX 我有javascript代码,可以让我在这个表和另一个表(一开始是空的)之间移动行 数据集足够小,不需要Ajax分页,但足够大,DataTable中的排序/过滤功能非常有用。所以我把第一个表变成了一个数据表 问题:移动到第二个表的行在移动后仍受数据表代码的影响;第一个表上的任何新搜索、排序或筛选都会清空第二个表 因此,我希望能够修改DataTable下面的表,然后刷新它——让它重新分析DOM中存在的表,并从中重建其状态。最好不要丢失当前的搜索字符串、排序顺序等 我尝试使用DataTable API删除和添加行,但没有帮助-即使在删除和重画之后,对删除行内容的搜索也会使其重新出现 谢谢你的帮助 以下是原始行移动代码:Javascript 从DOM刷新jQuery数据表-无AJAX,javascript,jquery,jquery-datatables,Javascript,Jquery,Jquery Datatables,我有一个完全由服务器预先填充的HTML表;页面上没有AJAX 我有javascript代码,可以让我在这个表和另一个表(一开始是空的)之间移动行 数据集足够小,不需要Ajax分页,但足够大,DataTable中的排序/过滤功能非常有用。所以我把第一个表变成了一个数据表 问题:移动到第二个表的行在移动后仍受数据表代码的影响;第一个表上的任何新搜索、排序或筛选都会清空第二个表 因此,我希望能够修改DataTable下面的表,然后刷新它——让它重新分析DOM中存在的表,并从中重建其状态。最好不要丢失当
var top = $('#top');
var bottom = $('#bottom');
$('body').on('click', 'input:checkbox', function(ev) {
var box = $(ev.currentTarget);
var tr = box.closest('tr');
var table = tr.closest('table');
var to;
if (table.attr('id') == 'top' && checkbox.checked) {
to = bottom;
} else {
to = top;
}
to.append(tr);
});
好的,我能够使用DataTableAPI使它工作。谢谢 深入了解行移动代码将有助于正确回答您的问题。也许您需要使用$.clone()和$.remove()来移动行-这将清除所有附加事件中的行 或者,您可以.destroy()删除数据表(请参阅),移动该行,然后再次初始化它 [编辑:] 是的,您需要使用DataTableAPI来移动行
该库似乎很好地支持它:+请参见编辑。如果破坏数据表,我将失去搜索/排序/筛选状态。不使用Ajax有什么好处?我听说使用销毁是不可取的。虽然这显然是正确的答案,但事实并非如此。OP没有请求Ajax。