2012-02-23 20 views
14

Desidero rimuovere tutte le righe della tabella tranne l'intestazione.Come rimuovere tutte le righe della tabella mantenendo l'intestazione

Questo è quello che ho provato, ma cancella sempre tutte le righe e intestazione:

$("#<%=tblDetailFourn.ClientID%> tbody tr").remove(); 

$("#<%=tblDetailFourn.ClientID%> tbody tr").not("thead tr").remove(); 

$("#<%=tblDetailFourn.ClientID%> tr").not("thead tr").remove(); 

$("#<%=tblDetailFourn.ClientID%> tbody").not("thead").remove(); 

$("#<%=tblDetailFourn.ClientID%> tbody").remove(); 

$("#<%=tblDetailFourn.ClientID%> > tbody").remove(); 

Ecco il codice html:

<table id="tblDetailFourn" runat="server" class="ProjetTable ProjetTableHover"> 
    <thead> 
     <tr> 
      <th style="width:200px">Rôle de Ressource</th> 
      <th style="width:200px">Nom Prénom</th> 
      <th style="width:120px">Tel</th> 
      <th style="width:200px">Courriel</th> 
      <th style="width:80px">Actif</th> 
      <th style="width:33px"></th> 
      <th style="width:33px"></th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 
+0

La tabella non ha righe del corpo ??? Sembra che abbia funzionato ??? –

+1

'$ (" # <% = tblDetailFourn.ClientID%> tbody tr "). Remove();' è corretto. Cosa sta realmente accadendo quando si esegue lo script? – jrummell

+0

questa è solo la struttura. Lo riempio con ajax – Marc

risposta

11

Prova ad usare questo:

$('#<%=tblDetailFourn.ClientID%> tr').not(function(){ return !!$(this).has('th').length; }).remove(); 
+0

Wow, ho pensato che sarebbe stato molto più semplice di questo.Non so perché non funziona come ho provato ma il tuo funziona !! Grazie – Marc

2

Questo dovrebbe funzionare, partendo dal presupposto che non si dispone di alcun elementi di intestazione in tbody.

$("#<%=tblDetailFourn.ClientID%> tbody tr").remove(); 
10

Prova http://api.jquery.com/child-selector/

$("#<%=tblDetailFourn.ClientID%> > tbody > tr").remove(); 

Quello che hai dovrebbe funzionare comunque.

+0

Non funziona :( – Marc

+0

@Marc potrebbe essere possibile avere un errore Javascript da qualche parte o un problema di formattazione HTML (tag di fine mancante, ecc.) Che sta lanciando JQuery. –

4

Che dire:

$('#tblDetailFourn tbody').html('');

jsfiddle

+0

non funziona :( – Marc

+0

Certo che lo fa. il mio jsfiddle link, commenta il Javascript e rieseguilo e vedrai apparire i dati – SenorAmor

+0

Più semplice e pulito –

2

Hai provato questo ?:

$("#<%=tblDetailFourn.ClientID%> tbody").html('') 
+0

non funziona :( – Marc

40
$('#tblDetailFourn tbody').empty(); 
+0

Funziona come un incantesimo! Grazie! –

+0

Georg! Sei il mio eroe! Questa dovrebbe essere la risposta corretta – Patricia

0

Sulla base del codice HTML che hai fornito la soluzione sta seguendo

$("#tblDetailFourn tbody").empty(); 

Questo funziona perfettamente.

Grazie

0
$('#tblDetailFourn > tbody > tr > td').parent('tr').empty(); 
+0

** Dalla coda di revisione **: Posso chiederti di aggiungere un po 'di contesto attorno al tuo codice sorgente. -le risposte solo sono difficili da capire. Aiuterà il richiedente e i futuri lettori sia se puoi aggiungere ulteriori informazioni nel tuo post. – RBT

+0

Ci scusiamo, fondamentalmente quello che sta accadendo è che inizialmente si fa riferimento al nome della tabella (#tblDetailFourn), il> trova i tag secondari per qualsiasi riferimento a te (in questo caso 'tbody'), trova i tag secondari 'tr', e per trovato ogni tag 'tr', si trova il tag secondario 'td'; 'td' indica la riga di dati piuttosto che l'intestazione dati (che dovrebbe usare il tag 'th'), questa riga ha bisogno di essere svuotata, per trovare il tag row di questo tag 'td', aggiungere ".parent ('tr') ", questo assicura che solo le righe che contengono i dati e le intestazioni NOT siano selezionate e svuotate all'interno dell'appendice di" .empty() "" – GuestFirstPost

Problemi correlati