Как удалить текущую строку с плагином с данными jquery - PullRequest
29 голосов
/ 18 декабря 2009

У меня есть столбец с кнопками в таблице. Я использую подключаемый модуль jQuery datatable. На кнопках написано «Удалить», и идея заключается в том, что при нажатии на эту кнопку она удаляет текущую строку в таблице.

Когда я вызываю fnDeleteRow, кажется, что он работает в первый раз, но больше нет времени для этой строки, поэтому похоже, что она не удаляет строку должным образом.

Ответы [ 5 ]

61 голосов
/ 18 декабря 2009

Попробуйте это:

var row = $(this).closest("tr").get(0);
oTable.fnDeleteRow(oTable.fnGetPosition(row));

Если это не работает, проверьте следующий пример

2 голосов
/ 18 декабря 2009

Допустим, вы прикрепили функцию, которая будет вызываться, когда пользователь нажимает кнопку. Функция будет выглядеть примерно так:

function DeleteRow(event)
{
  //get the row of the cell that is clicked
  var $row = $(this).parents("tr").eq(0)
  //if you need the id you can get it as
  var rowid = $row.attr("id");
  //now you can call delete function on this row
  $row.delete(); 
}
1 голос
/ 04 октября 2014

Как насчет этого:

    // Delete Row
    $('.glyphicon-minus').on("click", function() {
        configTable.row($(this).closest("tr").get(0)).remove().draw();
    });
0 голосов
/ 21 марта 2016

Вот как это работает для меня. В функции готовности документа я назначаю преобразованную версию таблицы HTML переменной, и когда нажимается кнопка в, я просматриваю родителей / потомков с помощью JQuery и отправляю полученную строку в качестве параметра в функцию библиотеки fnDeleteRow ().

Вот комментарии из библиотечной функции. И пример, который упоминается в библиотеке.

/**
* Remove a row for the table
*  @param {mixed} target The index of the row from aoData to be deleted, or
*    the TR element you want to delete
*  @param {function|null} [callBack] Callback function
*  @param {bool} [redraw=true] Redraw the table or not
*  @returns {array} The row that was deleted
*  @dtopt API
*  @deprecated Since v1.10
*
*  @example
*    $(document).ready(function() {
*      var oTable = $('#example').dataTable();
*
*      // Immediately remove the first row
*      oTable.fnDeleteRow( 0 );
*    } );
*/

// And here's how it worked for me.
var oTable;
$("document").ready(function () {
    oTable = $("#myTable").dataTable();
});

//Remove/Delete button's click.
$("a[name='deleteColumn']").click(function () {
    var $row = $(this).parent().parent();
    oTable.fnDeleteRow($row);
});
0 голосов
/ 18 декабря 2009

с этой страницы :

$('#example tbody td').click( function () {
    /* Get the position of the current data from the node */
    var aPos = oTable.fnGetPosition( this );

    //...
} );
...