我有一个使用datatable插件的表。我试图使用它来动态删除它的一行:
$(document).ready(function() {
var oTable = $("table#demo-dtable-02").dataTable({"aaSorting": []});
$(".icon-remove").on('click',function(){
var anSelected = fnGetSelected( oTable );
deleted=oTable.fnDeleteRow(anSelected[0] );
});
});
我收到以下错误ReferenceError:未定义fnGetSelected 我尝试使用(从这里:jQuery Data Tables plugin not removing table row)
$(this).parent('tr').remove();
这当然会删除行但不会重置页脚中的文本 显示17个参赛作品中的1到10个。 删除这种方式不是解决此问题的最佳方法。
我的DOM代码如下:
<?PHP
$count=1;
foreach($ledgers as $row) {?>
<tr >
<td><a onClick="viewDetails(<?PHP echo $row['id'];?>)" style="cursor:pointer"><?PHP echo $row['name'];?></a></td>
<td><?PHP echo $row['email'];?></td>
<td><?PHP echo $row['contact_number'];?></td>
<td>
<i class="icon-remove" rowcount=<?PHP echo $count;?> style="cursor:pointer; margin-right:5px" title="Remove Ledger" id="removeLedgerNow"></i>
<i class="icon-edit" style="cursor:pointer" title="Edit Ledger" onclick="viewDetails(<?PHP echo $row['id'];?>)"></i>
</td>
</tr>
<?PHP $count++; } ?>
注释
答案 0 :(得分:4)
<强>更新强>
试试这段代码:
$('.icon-remove').on('click', function () {
// Get the position of the current data from the node
var aPos = oTable.fnGetPosition( $(this).closest('tr').get(0) );
// Delete the row
oTable.fnDeleteRow(aPos);
} );
注意:
fnGetSelected
。它可以是OP具有的自定义功能,但不会在问题中生成。fnGetPosition
接受td
,th
或tr
元素.get(0)
是将元素从jQuery对象中删除