web-dev-qa-db-fra.com

jquery datatables supprime ligne par index

Je sais que cette question est populaire mais toutes les réponses concernent des lignes sélectionnées. J'essaie de supprimer/supprimer une ligne qui n'est pas sélectionnée. J'ai une variable pour la table que je veux supprimer la ligne et j'ai l'index de la ligne que je veux supprimer.

Il existe différentes manières d'obtenir un handle sur la table ou les lignes:

var table = $('#tableName');
var rows = $('#tableName tbody tr').toArray();
var oTable = $('#tableName').dataTable();

Je sais comment utiliser la méthode row.remove() sur une ligne sélectionnée.

var jThisButton = $(this);
var jRow = jThisButton.parents("tr");
jRow.remove();

Mais ma ligne n'est pas sélectionnée; au lieu de cela, j'ai un index. Disons que mon index est 2. En utilisant quelque chose comme le code ci-dessus, je peux peut-être obtenir une rangée par index et le supprimer comme ceci:

var jRow = table.find('tr').eq(index);
jRow.remove();

Sauf que ça ne marche pas. Ce code déplace la ligne que je veux supprimer vers la dernière ligne et va Wonky, montrant la barre de recherche.

 enter image description here

Vous pouvez voir dans l'image ci-dessous que j'ai 4 lignes dans la table.

Comment puis-je supprimer le tr existant à l'index 2? 

 enter image description here

Je n'ai pu trouver la réponse à cette question nulle part. S'il vous plaît aider!

6
Patricia

fnDeleteRow est la fonction correcte à utiliser, mais ce n'est pas aussi simple qu'on pourrait le penser:

$('#delete').click(function(e){
    var row = oTable.find('tr').eq(3);
    oTable.fnDeleteRow(row[0]);
})

Voir ici pour une version fonctionnelle.

1
markpsmith

essaye ça :

$("tr").eq(1).remove();
1
Sushant Bassi