1
我需要改變基於元素位置的渲染單元,在不改變數據, 在文檔,我發現mData
和mRender
選項,我試着用fnRender
(這是depricated),但它給我的位置,但在渲染時更改表格中的數據,所以我想知道在渲染時是否有任何方法來獲取單元格位置,或者我應該在每次更改後自行重新渲染表格?如何得到數據表當前呈現的元素
下面的代碼說明了我的需求:
$(document).ready(function() {
var oTable = $('#example').dataTable({
"aoColumnDefs": [ {
"aTargets": ['_all'],
"mRender": function (data, type, full)
{
if (type!='display') return data;
//HOW to get current cell indexes or DOM element here ?
console.log(this,data,type,full);
return data+' ttt';
}
} ]
});
$('#example > tbody > tr').on('click','td',function() {
console.log(this);
var pos=oTable.fnGetPosition(this);
var value=oTable.fnGetData(this);
oTable.fnUpdate(value.split("").reverse().join(""),pos[0],pos[2]);
});
var button=$('<button>').text('clickme');
button.click(function() { console.log(oTable.fnGetData());});
$('body').append(button);
});
http://live.datatables.net/enirid/3/edit
使用fnRender樣本:
$(document).ready(function() {
var oTable = $('#example').dataTable({
"aoColumnDefs": [ {
"aTargets": ['_all'],
"fnRender": function (obj, data)
{
console.log(obj,data);
var col=obj.iDataColumn;
//HOW to change display here without changing data of table
return data+' '+col;
}
} ]
});
$('#example > tbody > tr').on('click','td',function() {
console.log(this);
var pos=oTable.fnGetPosition(this);
var value=oTable.fnGetData(this);
oTable.fnUpdate(value.split("").reverse().join(""),pos[0],pos[2]);
});
var button=$('<button>').text('clickme');
button.click(function() { console.log(oTable.fnGetData());});
$('body').append(button);
});
http://live.datatables.net/opubaj/edit
該事件還需要經過'fnUpdate',我現在就更新問題被使用,而我需要更改單元格文本,不是細胞類 –
問題更新 –