我已将表行动态添加到jquery数据表中,如下所示
var addId = $('#data-table').dataTable().fnAddData([
this.AreaName,
this.RSPName,
this.DsrName,
this.DSRMSISDN,
this.Name,
status
]);
现在我想将一些信息(这里是这个变量)存储到tr节点,比如$(' tr')。data(' trdata',this)。如何做到这一点?
答案 0 :(得分:0)
以下示例适用于数据表 1.9.x 和 1.10.x (旧API)。
如您所知,fnAddData
返回新插入行的ID。此id不能与jQuery一起使用,因为jQuery结果基于表在DOM中的呈现方式(分页和排序行#id
很可能不在位置#id
)。您可以通过API方法<tr>
获取与#id
相关联的fnSettings().aoData[..].nTr
,并通过该方法将数据添加到<tr>
正确。 addRow函数可能如下所示:
function addRow(this_) {
//add the row
var addId = table.fnAddData([
this_.AreaName,
this_.RSPName,
this_.DsrName,
this_.DSRMISSION,
this_.Name
]);
//get the newly inserted TR and add this_ as trdata
var tr = table.fnSettings().aoData[addId].nTr;
$(tr).data('trdata', this_);
}
您可以测试trdata
- 对象是否以这种方式正确添加:
$('#example tbody tr').on('click', function() {
if ($(this).data('trdata')) alert('has trdata');
});
参见演示 - &gt;的 http://jsfiddle.net/6mtdj3xL/ 强>