Javascript 如何在单个datatable列上启用xeditable?

Javascript 如何在单个datatable列上启用xeditable?,javascript,jquery-selectors,twitter-bootstrap-3,datatables,x-editable,Javascript,Jquery Selectors,Twitter Bootstrap 3,Datatables,X Editable,我试图在具有以下结构的datatable上使用 <table id="example"> <thead> <tr> <th>ID</th> <th>Type</th> </tr> </thead> <tbody> {% for r in records %}

我试图在具有以下结构的datatable上使用

<table id="example">
    <thead>
        <tr>
          <th>ID</th>
          <th>Type</th>
        </tr>
    </thead>
    <tbody>
        {% for r in records %}
        <tr>
            <td><a href="{{ r.link }}">{{ r.id }}</a></td>
            <td><a href="#" pk-data="{{ r.id }}" data-type="select" data-value="{{ r.type.id }}">{{ r.type.name }}</a></td>
        </tr>
        {% endfor %}
    </tbody>
</table>
这是行不通的。我的控制台中没有错误。这根本没用。没有弹出窗口,没有内联,什么都没有

我怀疑这是我“example.td a”的结果。我的Javascript已经生锈了,但我相信这应该适用于这两个列,对吗?如何使此选择仅适用于第二列

我期待这样的东西从,特别是选择,本地数组,自定义显示

我提供了一个帮助显示我的问题的方法,一种方法是将class=second\u td添加到第二个元素中,并将选择器更改为“example.second\u td a”

,我说您需要将class=second\u td添加到第二个元素中,而不是添加到第二个td中的标记中。一种方法是将class=second\u td添加到第二个元素中,并将选择器更改为“example.second\u td a”


,我说你需要将class=second\u td添加到你的second中,而不是添加到你的second td中的标记中。我只是想让你知道上面的解决方案很好。。。但是datatables搜索功能中断,因为datatables行信息没有更新我将其添加到上面的FIDLE中,现在在编辑字段后,您可以对新数据进行筛选。有两种方法可以达到预期的效果:

重新创建数据表

$('#example .second_td a').on('save', function(e, params) {
    //recreate datatable
    $('#example').DataTable().destroy();
    $('#example').dataTable({
          "aaSorting": [[ 1, "desc" ]],
          "lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
          "iDisplayLength": 250
        });
});
$('#example .second_td a').on('save', function (e, params) {
    var $td = $(this).closest('td');
    $('#example')
        .DataTable()
        .cell($td)
        .data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>'); 
});
更新数据表中的单个单元格

$('#example .second_td a').on('save', function(e, params) {
    //recreate datatable
    $('#example').DataTable().destroy();
    $('#example').dataTable({
          "aaSorting": [[ 1, "desc" ]],
          "lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
          "iDisplayLength": 250
        });
});
$('#example .second_td a').on('save', function (e, params) {
    var $td = $(this).closest('td');
    $('#example')
        .DataTable()
        .cell($td)
        .data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>'); 
});

我只是想让你知道上面的解决方案很好。。。但是datatables搜索功能中断,因为datatables行信息没有更新我将其添加到上面的FIDLE中,现在在编辑字段后,您可以对新数据进行筛选。有两种方法可以达到预期的效果:

重新创建数据表

$('#example .second_td a').on('save', function(e, params) {
    //recreate datatable
    $('#example').DataTable().destroy();
    $('#example').dataTable({
          "aaSorting": [[ 1, "desc" ]],
          "lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
          "iDisplayLength": 250
        });
});
$('#example .second_td a').on('save', function (e, params) {
    var $td = $(this).closest('td');
    $('#example')
        .DataTable()
        .cell($td)
        .data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>'); 
});
更新数据表中的单个单元格

$('#example .second_td a').on('save', function(e, params) {
    //recreate datatable
    $('#example').DataTable().destroy();
    $('#example').dataTable({
          "aaSorting": [[ 1, "desc" ]],
          "lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
          "iDisplayLength": 250
        });
});
$('#example .second_td a').on('save', function (e, params) {
    var $td = $(this).closest('td');
    $('#example')
        .DataTable()
        .cell($td)
        .data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>'); 
});

那没有如预期的那样奏效。我已经提供了一个帮助我更好地展示我的问题的方法,但没有达到预期效果。我已经提供了一个帮助更好地展示我的问题。