Подтвердить что ты не робот

Datatables.row() - undefined

Я хочу удалить строки, просто щелкнув соответствующую кнопку. таблицы данных работают, я могу использовать некоторую базовую функцию, например сортировку и поиск в datatable, но когда я нажимаю кнопку, она просто просто говорит undefined ошибка:

для вашей информации, im используя datatable 1.10 и jquery 1.10.2 enter image description here

Код:                  

<table cellpadding="0" cellspacing="0" border="0" class="row-border" id="table">
<thead>
    <th>Video ID</th>
    <th>Filename</th>
    <th>Action</th>
</thead>
<tbody>
    <td>1</td>
    <td>ABCD</td>
    <td><input type='button' name='deleteBtn' value='Delete' />
</tbody>
<tfoot>
    <tr>
        <th>Video ID</th>
        <th>Filename</th>
        <th>Action</th>
    </tr>
</tfoot>
</table>

<script src="jquery.min.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script type="text/javascript">
var table = $('#table').dataTable( {} );

$('#table tbody').on('click',"input[type='button']",function() {
    table
        .row( $(this).parents('tr') )**
        .remove()
        .draw();
});
</script>
</body>
</html>
4b9b3361

Ответ 1

Это не работает, потому что существует огромная разница между конструктором dataTable() и конструктором dataTable(), представленным в 1.10.x(см. документы):

Разница между двумя заключается в том, что первый возвращает jQuery объект, а второй возвращает экземпляр API DataTables.

Просто измените

var table = $('#table').dataTable( {} );

к

var table = $('#table').dataTable( {} );

если вы хотите работать с новым API DataTables через переменную table.
Посмотрите, как работает ваш код → http://jsfiddle.net/Sd6UQ/

Примечание. Не забудьте использовать <tr>.. </tr> и закрыть <td> правильно. dataTables может быть очень чувствительным к неправильной разметке.

Ответ 2

если вы решили создать datatable на этом пути

table = $('# table'). dataTable ({})

вы получите объект jQuery в таблице var но вы можете получить доступ к dataTable api со следующей инструкцией

table.api()

вы могли видеть, что он работает здесь

http://jsfiddle.net/Sd6UQ/

вы можете использовать этот Technic, если у вас нет доступа к инструкции создания данных

<script>
    //datatable creation is in another file
    //$('#table').dataTable( {} )

    $("button[name'deleteBtn']").click(function(){
        var row = $(this).closest("tr");
        var table = row.closest('table').dataTable();
        table.api()
             .row( row )
             .remove()
             .draw();
    })
<script>

вы могли видеть, что он работает здесь

http://jsfiddle.net/r2ue74zn/

Ответ 3

Вы можете просто добавить следующий код для перезагрузки datatable

//var table = $('#table').dataTable( {} );
table.ajax.reload();