首页 > 解决方案 > DataTable 使用 for 循环添加新行

问题描述

大家好

我对 DataTable 及其关于添加新行的 API 有疑问。我将 DataTable 与带有 ES5 的 jQuery 一起使用(是的,我需要这种组合)。

我有一个带有我称之为“addNewRow”的功能的按钮(是的,这很明显)。如果我点击这个按钮会显示一个带有输入的模式,我可以在其中放置一些数据,如姓名、薪水等,并将其实现到我的 DataTable,但是有什么方法可以让它更动态?因为每次当我想创建一个新列并向 HTML 模态添加新输入时,我必须在我的 js 文件中的 row.add() 中添加一个新行代码。

这是一个例子:

    $buttonWrapper.on('click', '.addButton', function (){
    
    $table = $('table').DataTable();
    
    $table.row.add([
       
    $modal.find('input').eq(0).val(),
    $modal.find('input').eq(1).val(),
    $modal.find('input').eq(2).val()
    
    ])。画();
    
    });

我想要这样的循环:

    $buttonWrapper.on('click', '.addButton', function (){
    
    $table = $('table').DataTable();
    $theadTr = $('table thead tr');
    
      for(var i = 0; i < $theadTr.length; i++){
    
       $table.row.add([
       
       $modal.find('input').eq(i).val()
      
      ])。画();
     }
    
    });

我知道每次 row.add() 都会添加它,因为它取决于长度。我也尝试在 row.add() 函数中实现一种方法,但它不起作用(在免费版本上可能不存在类似的东西)。我也尝试过 add.rows() 但它也不起作用。感谢您的任何建议。

标签: jquerydatatablerowaddecmascript-5

解决方案


希望这有帮助。

$buttonWrapper.on('click', '.addButton', function (){
    var newRow = [];
    $table = $('table').DataTable();
    $theadTr = $('table thead tr');
    for(var i = 0; i < $theadTr.length; i++){
       newRow.push($modal.find('input').eq(i).val());
   }
   $table.row.add(newRow).draw();
});

推荐阅读