我有一个javascript对象,我试图在数据表中添加一个新行。一列是字段,另一列应包含按钮。
var appendLastCategory = function() {
var obj = {
id: 'jh2i4h34ubi43',
name: 'Lolo',
};
$('#categoriesList').DataTable().row.add({
name: obj.name, //First column
mRender: function() { //Second column
return "<a class='md-btn' onClick='deleteCategory(this, "" + obj.id + "")'>Delete</a>";
}
}).draw();
};
然后当我点击&#34;删除&#34;按钮,我得到&#39; undefined&#39;在&#39; id&#39;值。而且我不知道为什么,因为当我初始化表格时,用初始数据填充它并使用&#39; mRender&#39;它的工作方式大致相同。
var deleteCategory = function(element, id) {
console.log(id);
//Blah blah, all the code to delete on backend and remove the row
};
答案 0 :(得分:0)
我希望这可以提供帮助:
var deleteCategory = function(element, id) {
alert(id);
//Blah blah, all the code to delete on backend and remove the row
};
var appendLastCategory = function () {
var obj = {
id: 'jh2i4h34ubi43',
name: 'Lolo',
};
$('#categoriesList').DataTable().row.add({
'0': obj.name, //First column
'1': "<a href='#' class='btn btn-info' role='button' onClick='deleteCategory(this, "" + obj.id + "")'>Delete</a>",
}).draw();
};
$(function () {
appendLastCategory();
});
&#13;
<script src="http://code.jquery.com/jquery-1.12.1.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<link href="http://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css" rel="stylesheet">
<script src="http://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<table id="categoriesList" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>name</th>
<th>button</th>
</tr>
</thead>
<tfoot>
<tr>
<th>name</th>
<th>button</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>Tiger Nixon</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Tiger Nixon</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Tiger Nixon</td>
</tr>
</tbody>
</table>
&#13;
答案 1 :(得分:0)
感谢您的回复!我已经解决了。
要初始化DataTable,请使用以下代码:
var datax = [{
id: '67i67i634r2r',
name: 'Lala',
},{
id: 'g45y45y657t3',
name: 'Lele',
}];
$('#categoriesList').DataTable({
"data": datax,
"columns": [
{ data: "name" }, {
render: function(o, type, data) {
return "<a class='md-btn' onClick='deleteCategory(this, "" + data.id + "")'>Delete</a>";
}
}
]
});
在最后,只需以这种方式添加javascript对象,所有内容都得到了解决。希望这会帮助更多人。
var appendLastCategory = function () {
var obj = {
id: 'jh2i4h34ubi43',
name: 'Lolo',
};
$('#categoriesList').DataTable().row.add(obj).draw();
};