2010-04-12 4 views
76

J'ai un tableau HTML rempli d'un certain nombre de lignes. Comment puis-je supprimer toutes les lignes de la table?clear table jquery

Répondre

122

Utilisez .remove()

$("#yourtableid tr").remove(); 

Si vous souhaitez conserver les données pour une utilisation ultérieure, même après l'avoir retiré, vous pouvez alors utiliser .detach()

$("#yourtableid tr").detach(); 

Si les lignes sont des enfants du table alors vous pouvez utiliser le sélecteur d'enfant au lieu du sélecteur descendant, comme

$("#yourtableid > tr").remove(); 
+11

attention à ce dernier: la plupart des navigateurs ajoutent un élément implicite 'tbody' autour des éléments' tr'. – nickf

38

légèrement plus rapide que d'enlever chacun individuellement:

$('#myTable').empty() 

Techniquement, cela supprimera thead, tfoot et tbody éléments aussi.

60

Si vous voulez effacer les données, mais garder les en-têtes:

$('#myTableId tbody').remove(); 

Le tableau doit être formaté de cette manière:

<table id="myTableId"> 
    <thead> 
     <tr> 
      <th>header1</th><th>header2</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>data1</td><td>data2</td> 
     </tr> 
    </tbody> 
</table> 
+1

thanks.this aidé –

+0

cela fonctionne, mais cela supprimant le «tbody» lui-même avec tous les «tr» à l'intérieur. –

24

Je avais besoin ceci:

$('#myTable tbody > tr').remove(); 

Il supprime toutes les lignes sauf l'en-tête.

9

L'option nucléaire:

$("#yourtableid").html(""); 

Détruit tout à l'intérieur de #yourtableid. Soyez prudent avec vos sélecteurs, car il va détruire n'importe quel html dans le sélecteur que vous passez!

+2

+1 pour nucléaire :). Mais devrait comprendre que ce n'est pas le «meilleur» style :) Je ne le recommanderais pas en général – Budda

+0

lol. D'accord. J'ai utilisé cette méthode particulière dans le passé pour la vitesse et la résolution de situations difficiles. Il a une utilisation valide dans le domaine des applications JQuery. – KevinDeus

5
$("#employeeTable td").parent().remove(); 

Cela permettra d'éliminer tous les tr ayant td comme enfant. Toutes les lignes sauf l'en-tête seront supprimées.

0
$('#myTable > tr').remove(); 
0

ayant une table de ce type (avec un en-tête et un corps)

<table id="myTableId"> 
    <thead> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

supprimer tous les tr ayant un parent appelé tbody à l'intérieur du #tableId

$('#tableId tbody > tr').remove(); 

et dans le sens inverse si vous voulez ajouter à votre table

$('#tableId tbody').append("<tr><td></td>....</tr>"); 
0
<table id="myTable" class="table" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>Header 1</th> 
      <th>Header 2</th> 
      <th>Header 3</th> 
     </tr> 
    </thead> 
    <tbody id="tblBody"> 

    </tbody> 
</table> 

Et Retirez:

$("#tblBody").empty(); 
1

Cela supprimera toutes les lignes appartenant au corps, gardant ainsi les en-têtes et le corps intact.

$ ("# tableLoanInfos tbody tr") retirer ()