【问题标题】:How to set Id attribute of TDs while adding row in DataTable using row.add(data).draw().node();如何在使用 row.add(data).draw().node() 在 DataTable 中添加行时设置 TD 的 Id 属性;
【发布时间】:2016-02-06 18:16:31
【问题描述】:

当我使用Datatables的API添加新行时,如何设置一个TD的“id”属性?假设我只有一个 TD。

【问题讨论】:

  • 将相同的id 属性分配给所有td 元素是不行的,你能澄清一下你需要什么吗?
  • 刚刚修改了问题。如果我可以为一个 TD 添加 Id,我可以通过在我的迭代器中添加前缀来为其他 TD 生成唯一 ID。

标签: api datatables row


【解决方案1】:

以下是 API 中的一个示例,它对新添加的行执行操作。

var table = $('#example').DataTable();

table
    .rows.add( [
        new Pupil( 43 ),
        new Pupil( 67 ),
        new Pupil( 102 )
    ] )
    .draw()
    .nodes()
    .to$()
    .addClass( 'new' );

.addClass() 是一个 jquery 方法,他们在这里使用它来将class="new" 添加到新添加的行中。

因此,您可以使用.find() 在该行中找到所有<td>,而不是向该行添加一个类,然后使用.each() 调用每个<td> 上的函数以使用@ 修改其id 属性987654328@.

var table = $('#example').DataTable();

var count = 0;

table
    .rows.add( [
        new Pupil( 43 ),
        new Pupil( 67 ),
        new Pupil( 102 )
    ] )
    .draw()
    .nodes()
    .to$()
    .find('td')
    .each(function() {
        $(this).attr('id', 'td' + (count++)  );
    });

注意使用count 变量来确保分配的每个id 都是唯一的。

【讨论】:

  • 虽然这是一个正确的解决方案,但将相同的id(例如td0 分配给所有td 元素)是没有意义的。
  • 糟糕,我在想每个<td> 的计数都会增加。需要使用.each()。查看更新的答案。
  • 感谢 AndrewMairose 和 Gyrocode.com。解决方案是正确的,但是我设法通过将文本放入 并为其分配 ID 来获得我想要的。这样,我可以轻松地处理 TD 中的内容,而无需为 TD 分配 ID。
  • @FaisalKhan,如果对您有帮助,请考虑接受答案。
【解决方案2】:

不用上面解决方案中的计数,可以使用jQuery创建的索引-

.find('td')
    .each(function(**index**) {
        $(this).attr('id', 'td' + **index**  );
    });

【讨论】:

    【解决方案3】:

    添加到 td 中的列之一(说只有第 4 列):

    var datatableTable = $('#datatableTable').DataTable();
    var json = JSON.parse(data);
    for (var row in json) {
    var toAdd = {
    id: json[row].id,
    name: json[row].name
    };
    
    var i = datatablePojectListTable.row.add(toAdd).draw().nodes().to$().find('td:eq(4)').each(function() {$(this).attr('id', 'td-' + idVal  );});
    // Add ID to row
    datatablePojectListTable.rows(i).nodes().to$().attr("id", idVal);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2017-03-25
      • 2020-01-21
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多