我已经在表的初始化阶段阅读了使用fnCreatedRow
,但是这个解决方案对我不起作用,因为我需要在table.row.add
阶段添加ID,因为ID I'插入来自我在添加行之前进行的ajax成功调用。
基本上 - 当用户点击我的addRow按钮时,我将请求发送到我的服务器并首先在数据库中创建新行,然后返回该新创建的行的唯一lineID。然后,我想在该表的第一个单元格中使用lineID
作为id
元素,以便稍后在用户保存页面时引用它。
这是我的功能:
$('#addRow').on( 'click', function () {
var q = <?php echo json_encode($q); ?>;
var d = $('#d').html();
$.ajax({
type: 'POST',
url: 'addRow.php',
data: { q:q, d:d },
success:function(data){
newRowId = data;
}
});
lastRow++;
table.row.add([
lastRow, /* add id = newRowID to this cell */
"",
"",
"",
"",
""
] ).draw( false );
});
我找到了添加ID的方法,但我只能在ROW本身上获取,而不是在单元格内:
$.ajax({
type: 'POST',
url: 'addRow.php',
data: { q:q, d:d },
success:function(data){
success = JSON.parse(data);
uCount = success[0];
uLineID = success[1];
lastRow++;
var newRow = table
.row.add([
lastRow,
"",
"",
"",
"",
""
] )
.draw( )
.node( );
$( newRow )
.eq(0).attr( 'id', uLineID); /* I tried this */
.attr('id', uLineID); /* and this, separately */
}
});
答案 0 :(得分:4)
使用以下代码为新添加的行中的第一个td
元素设置ID属性。
var newRow = table.row.add([
lastRow,
"",
"",
"",
"",
""
]).draw( false ).node();
$('td:eq(0)', newRow).attr('id', uLineID);
有关详细信息,请参阅row.add()
。