簡體   English   中英

按Id使用Jquery Datatable Plugin刪除行

[英]Delete row using Jquery Datatable Plugin by Id

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

感謝幫助!

答案:

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

查看第1903行的jquery.dataTables源代碼,在我看來$('#row'+id+'-tr')確實在你的情況下返回一個空對象。 這意味着頁面上不存在選擇器。

您可以通過在oTable.fnDeleteRow(之前放置console.log($('#row'+id+'-tr'))來驗證這oTable.fnDeleteRow(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM