按Id使用Jquery Datatable Plugin删除行

时间:2011-10-30 20:17:23

标签: javascript jquery jquery-ui

oTable数据表的行具有唯一ID。

为什么这段代码不起作用?

oTable.fnDeleteRow(
    oTable.fnGetPosition(
        $('#row'+id+'-tr')));

错误是:

[18:10:44.631] nNode.nodeName is undefined @ http://localhost: ... /jquery.dataTables.js:1903

谢谢!

修改

示例:

<table>
  <thead>
   <th>
    <td>Name </td>
    <td>Delete</td>
   </th>
  </thead>

  <tbody>
   <tr id="row0-tr">
    <td> Row 0 </td>
    <td> <Button onclick="deleteRow(0)"> - </td>
   </tr>

   <tr id="row1-tr">
    <td> Row 1 </td>
    <td> <Button onclick="deleteRow(1)"> - </td>
   </tr>

   <tr id="row2-tr">
    <td> Row 2 </td>
    <td> <Button onclick="deleteRow(2)"> - </td>
   </tr>

  </tbody>
</table>

编辑2:

真正的问题是:如何使用id获取表格行?

方法fnGetPosition($('#row'+id+'-tr')未返回行。

我在调用fngetPosition之前放了这段代码:console.log($('#row'+id+'-tr'))和 返回:({length:1, 0:({}), context:({}), selector:"#row1-tr"})

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

答案:

oTable.fnDeleteRow(
    oTable.fnGetPosition(
        document.getElementById('#row'+id+'-tr')));

答案 1 :(得分:0)

查看第1903行的jquery.dataTables源代码,在我看来$('#row'+id+'-tr')确实返回了一个空对象。这意味着页面上不存在选择器。

您可以在console.log($('#row'+id+'-tr'))

之前加oTable.fnDeleteRow(来验证这一点