【问题标题】:Delete row using Jquery Datatable Plugin by Id按 Id 使用 Jquery Datatable 插件删除行
【发布时间】:2011-10-30 20:17:22
【问题描述】:

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"})

感谢您的帮助!

【问题讨论】:

标签: javascript jquery jquery-ui


【解决方案1】:

答案:

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

【讨论】:

    【解决方案2】:

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

    您可以通过在oTable.fnDeleteRow( 之前添加console.log($('#row'+id+'-tr')) 来验证这一点

    【讨论】:

    • console.log($('#row'+id+'-tr')) 返回:({length:1, 0:({}), context:({}), selector:"#row1-tr"})。我是 jQuery 新手。是空的吗?
    • 我在这里有点困惑。长度为 1,但 id 为 0 的元素,包含一个空的哈希...选择器是正确的,jQuery 应该返回这个 &lt;tr id="row1-tr"&gt; 元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多