选择行并单击数据表中的按钮后,获取表行的行ID

时间:2016-05-04 09:29:44

标签: javascript php jquery html datatables

我想要实现的是显示一个表,在选择一行之后,可以编辑或删除一行(进行正确的查询),这样我就需要一个我不想显示的主键。我的表看起来像这样:

<table id='documents_d' class='display'>
    <thead>
        <tr><th>title 1</th><th>title 2</th><th>title 3</th>
    </thead>
    <tbody>
        <tr data-id='1'>
            <td>content</td>
            <td>content</td>
            <td>content</td>
        <tr data-id='2'>
            <td>content</td>
            <td>content</td>
            <td>content</td></tr>
    </tbody>
</table>

我使用以下脚本来运行数据表:

<script>
    $(document).ready(function () {
        var documents_d = $('#documents_d').DataTable({
            paging: true,
            dom: 'Blfrtip',
            colReorder: true,
            select: {style: 'single'},
            rowId: 'Writer',
            buttons: [
                'colvis',
                'excelHtml5',
                {
                    text: 'Edit',
                    action: function () {
                        alert(documents_d.row('.selected').data());
                    }
                }
            ]
        });
    });
</script>

而不是警报,我想运行像editDocument($ docID)这样的函数。所以首先我想选择一行(这很好),点击'Edit'后我想得到'data-id'并运行一个函数。我试过了:

documents_d.row('.selected').data("data-id")

但这会给我一个错误:

  

DataTables警告:table id = documents_d - 请求的未知参数   第1行第7列为“7”。有关此错误的详细信息,请参阅   见http://datatables.net/tn/4

1 个答案:

答案 0 :(得分:1)

你可能想要这个:

$(documents_d.row('.selected').node()).data('id');

然而,还有另一种方式:

https://datatables.net/reference/option/rowId

  

在a中的每个id元素上都有tr属性通常很有用   用于行选择和数据源识别的DataTable,   特别是在使用活动时。

然后你可以使用:

documents_d.row('.selected').id();