如何在使用 row.add(data).draw().node(); 在 DataTable 中添加行时设置 TDs 的 Id 属性

How to set Id attribute of TDs while adding row in DataTable using row.add(data).draw().node();

当我使用这个API数据表添加新行时,如何设置一个TD的"id"属性?考虑到我只有一个 TD。

这是来自 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() 调用函数,而不是向该行添加 class在每个 <td> 上使用 .attr().

修改其 id 属性
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 都是唯一的。

您可以使用 jQuery-

创建的索引代替上面解决方案中的计数
.find('td')
    .each(function(**index**) {
        $(this).attr('id', 'td' + **index**  );
    });

添加到假设 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);
}