DataTable 更新现有行问题 ajax

DataTable update existing row issue ajax

当提交 jquery 对话框时,我有如下 ajax 响应

<tr bgcolor="" id="row_4">
  <td><p>ffwrwrqwrvqwerf</p></td>
  <td>Active</td><td><a href="" class="link_btn"  id="4_edit">Edit</a> | <a href="" class="link_btn"  id="4_delete">Delete</a></td>
</tr>

我需要将数据表行 #row_4 修改为 ajax 响应。

// msg is the variable which stores the ajax response.

 $('#lstCategories').DataTable().row($('#row_'+$('#formid').val())).data($(msg)).draw();

这给我一个错误。 当我在语句 $('#lstCategories').DataTable().row($('#row_'+$('#formid').val())).data($(msg)).draw(); 中放置变量 msg 而不是 $(msg) 时,它在第一个 td 中给出 '<',在第二个 td 中给出 't',在中给出 'r'第三个 td 但没有错误。

您的 ajax 结果已经有了 <tr>。所以你可以删除特定的行,你可以添加一个新行

请检查演示代码

    $(document).ready(function () {
        $('#myTable').DataTable();

        $("#editButton").click(function () {
            var tbl = $('#myTable').DataTable();
            tbl.row("#row_2").remove().draw();
            var tblRow = "<tr id='row_2'><td>Value 3 - edited</td><td>Value 4 -edited</td></tr>";
            tbl.rows.add($(tblRow)).draw();
        });
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.css" />
<table id="myTable">
    <thead>
        <tr>
            <td>Title 1</td>
            <td>Title 2</td>
        </tr>
    </thead>
    <tbody>
        <tr id="row_1">
            <td>Value 1</td>
            <td>Value 2</td>
        </tr>
        <tr id="row_2">
            <td>Value 3</td>
            <td>Value 4</td>
        </tr>
        <tr id="row_3">
            <td>Value 4</td>
            <td>Value 5</td>
        </tr>
    </tbody>
</table>

<input id="editButton" type="button" value="Edit" />