2014-03-12 25 views
4

新添加的行我有我的HTML頁面中的現有數據表,我嘗試添加使用fnAddDatajQuery的馬克DataTable中

var addId = vandropDatatable.fnAddData(["1", "2"]); 

我怎樣才能findout新添加的行新行添加一些類吧(例如addClass( 「NEW_ITEM」))

+0

你能做出一個小提琴? –

+0

@AnoopJoshi添加新行功能可以在這裏看到:http://www.sprymedia.co.uk/dataTables/example_add_row.html – VinhNT

回答

7

已更新,以反映數據表1.10.x.下面的原始答案是針對1.9.x.它仍然是適用的,但1.10.x API的方式是更強大:

$("#add").click(function() { 
    var row = table.row.add([ 
     'new', 
     'new', 
     'new', 
     'new', 
     'new' 
    ]).draw(); 
    row.nodes().to$().addClass('newRow'); 
}); 

1.10.x演示 - >http://jsfiddle.net/0scq8rkm/

在1.10.x你得到API對象回來,手裏拿着行。 nodes().to$()讓你在內部行節點上工作,因爲它是一個jQuery對象。


比方說,你想給新<tr>的佈局如下:

tr.newRow { 
    background-color: red; 
    font-size: 20px; 
} 

和你有一個添加按鈕:

<button id="add">add new row</button> 

現在,添加按鈕,當點擊,使用返回的rowindex爲新創建的<tr>獲取正確的行,通過函數fnGetNodes

$("#add").click(function() { 
    var rowIndex = dataTable.fnAddData([ 
     'new', 
     'new', 
     'new', 
     'new', 
     'new' 
    ]); 
    var row = dataTable.fnGetNodes(rowIndex); 
    $(row).removeClass().addClass('newRow'); 
}); 

看到小提琴 - >http://jsfiddle.net/q4E3Y/

+0

許多感謝,那正是我需要:) – VinhNT

0

試着改變你的fnRowCallback以下幾點:

"fnRowCallback": function(nRow, aData, iDisplayIndex) { 
    nRow.className = "your new class"; 
    return nRow; 
} 

http://datatables.net/examples/advanced_init/row_callback.html

+1

我只是想爲onerow添加新的類,我的情況是 1.渲染表格完成後,添加一個「添加新按鈕」 2.單擊添加新按鈕後,向現有數據添加新行並突出顯示新添加的行。如果以這種方式回撥,所有行都具有相同的類,所以,沒有行會突出顯示 – VinhNT