javascript - 如何将数据表中动态添加的行包含到 DOM 树中,以便它的行为与页面加载时加载的任何其他行一样?

标签 javascript jquery html dom datatables

我正在使用数据表来表示我的应用程序中的数据。我有一个功能,可以在单击克隆图标时克隆任何行并动态添加它下面的行。

数据表具有搜索功能,可以搜索表中存在的所有行,但是它只考虑初始页面加载时加载到表中的行。它不考虑新动态添加的克隆行。

如何才能使新添加的行成为表格的一部分,并像任何其他行一样考虑进行搜索。

这是 fiddle

var table = $('#example').DataTable({
  responsive: true,
  "search": {
    "regex": true,
    "smart": false
  },

  "scrollY": "400px",
  "scrollCollapse": true,
  "paging": false
});


$(document).on('click', '.cloneclick', function() {


  var index = $(this).parent().parent().index();

  var clonedElement=$(this).parent().parent().clone(true,true).html();

  clonedElement = "<tr>" + clonedElement + "</tr>";

  $('#example > tbody > tr').eq(index).after(clonedElement);
});

最佳答案

您需要使用 datatable's row.add() method .它会自动更新数据表中的数据并刷新它。

因为您有,所以使用row().data() 获取数据将非常简单。 :

你的代码应该是这样的:

$(document).on('click', '.cloneclick', function() {
  var clonedElement = table.row($(this).parent().parent()).data();
  table.row.add(clonedElement).draw();
});

这是 a working diddle .

关于javascript - 如何将数据表中动态添加的行包含到 DOM 树中,以便它的行为与页面加载时加载的任何其他行一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408021/

相关文章:

javascript - 用数组生成多维对象

javascript - 使用 jquery 获取以前的 div 数据?

JavaScript/jQuery 多级 Accordion 不会关闭复选框

html - 为什么 div 100% 宽度不能按预期工作

html - 为什么我的绝对定位元素在某些情况下放错了位置?

javascript - Django 和 ajax 错误

javascript - CORS 不适用于 jQuery 和 Java

javascript - 如何使用 jQuery 和图像数组更改 #header 的 css 属性?

html - 鼠标悬停在文字效果上

javascript - 制作井字游戏,无法制作 'x'