我有多个使用DataTables
的表/* Data Table Initialization */
var $materialDataTable = $('.materialTable').dataTable({
"aoColumnDefs": [{ "sClass": "text-center", "aTargets": [ 0,9 ] },
{ 'bSortable': false, 'aTargets': [ 9 ] }]
});
我们说.materialTable
类的表的数量是2。
我想在特定的表格中添加一行。
我试过了:
$materialDataTable[0].fnAddData( [
'1',
'<a href="#" class="materialItem" data-type="text">N/A</a>',
'N/A',
'N/A',
'N/A',
'0',
'0',
'0',
'0',
'<input type="checkbox" class="deleteMaterialCheckBox">' ]);
但这不起作用。它给了我这个错误Object #<HTMLTableElement> has no method 'fnAddData'
要缩短我想在单击按钮时向特定表添加行但我不知道如何从上面的初始化中选择特定的表。
答案 0 :(得分:0)
正如您的调试器所说Object #<HTMLTableElement> has no method 'fnAddData'
。
这是因为<HTMLTableElement>
只保存对象的原始HTML。它不是jQuery对象,因此根本没有方法。
随着$(...)
缠绕它变成了一个jQuery对象,您可以访问所有可用的方法和属性。
尝试使用console.log($materialDataTable[0])
和console.log($($materialDataTable[0])
来查看您选择的DevTool中的差异。
正如评论中所提到的,您的问题的解决方案是:
$($materialDataTable[0]).dataTable().fnAddData(...)
修改强>
请参阅此简化版jsfiddle。有时候我很难解释,但这个例子显示了你的问题是什么。