Domanda

Utilizzando jQuery, come faccio a cancellare tutte le righe in una tabella, ad eccezione del primo?Questo è il mio primo tentativo con l'indice selettori.Se ho ben capito gli esempi correttamente, il seguente dovrebbe funzionare:

$(some table selector).remove("tr:gt(0)");

che vorrei leggere come "Involucro di un tavolo in un oggetto jQuery, quindi rimuovere tutti i 'tr' elementi (righe) in cui l'elemento di indice di queste righe è maggiore di zero".In realtà, si esegue senza generare un errore, ma non rimuovere tutte le righe dalla tabella.

Quello che mi manca, e come faccio a risolvere questo problema?Naturalmente, ho potuto utilizzare direttamente il javascript, ma mi sto divertendo così tanto con jQuery che mi piacerebbe risolvere questo utilizzando jQuery.

È stato utile?

Soluzione

Questo dovrebbe funzionare:

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").remove();
});

Altri suggerimenti

Credo che questo sia più leggibile dato l'intento:

$('someTableSelector').children( 'tr:not(:first)' ).remove();

Utilizzando i bambini si occupa anche del caso in cui la prima riga contiene una tabella limitando la profondità della ricerca.

Se si ha un elemento TBODY, si può fare questo:

$("someTableSelector > tbody:last").children().remove();

Se avete THEAD o elementi TFOOT avrete bisogno di fare qualcosa di diverso.

Un altro modo per ottenere questo risultato è utilizzando la funzione vuota () di jQuery con gli elementi thead e tbody della tabella.

Esempio di tabella:

<table id="tableId">
<thead>
    <tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
    <tr><td>some</td><td>content</td></tr>
    <tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>

E il comando jQuery:

$("#tableId > tbody").empty();

Questo eliminerà ogni file contenuti nella elemento tbody della tabella e mantenere l'elemento thead in cui l'intestazione dovrebbe essere. Può essere utile quando si desidera aggiornare solo il contenuto di una tabella.

Se si trattasse di me, probabilmente sarei bollire fino a un unico selettore:

$('someTableSelector tr:not(:first)').remove();

Il selettore non ha bisogno di essere all'interno del vostro rimuovere.

Dovrebbe essere qualcosa di simile:

$("#tableID tr:gt(0)").remove();

Il che significa selezionare ogni riga, tranne la prima in classifica con ID di IDtabella e rimuoverli dal DOM.

Si consideri una tabella con id tbl: il codice jQuery sarebbe:

$('#tbl tr:not(:first)').remove();
$('#table tr').slice(1).remove();

Mi ricordo che imbattersi in 'fetta' è più veloce di tutti gli altri approcci, quindi basta metterlo qui.

Per rimuovere tutte le righe, tranne la prima (tranne intestazione), utilizzare il codice qui sotto:

$("#dataTable tr:gt(1)").remove();

Scusi questo è molto ritardo di risposta.

Il modo più semplice che ho trovato per eliminare qualsiasi riga (e tutte le altre righe attraverso iterazione) è presente

$ ( '# rowid', '# IDtabella') rimuovere ();.

Il resto è facile.

$("#p-items").find( 'tr.row-items' ).remove();

avvolto in una funzione:

function remove_rows(tablename) { 
    $(tablename).find("tr:gt(0)").remove();        
}

poi chiamarlo:

remove_rows('#table1');
remove_rows('#table2');

Questo funziona perfettamente

$("#myTable tbody").children( 'tr:not(:first)' ).html("");

Questo ha funzionato nel modo seguente nel mio caso e lavorando bene

$("#compositeTable").find("tr:gt(1)").remove();

Modo più semplice :

$("#mytable").find($("tr")).slice(1).remove()

-primo riferimento la tabella
-ottenere l'elenco di elementi e tagliate a fette e rimuovere gli elementi selezionati della lista

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top