jQuery verwijdert alle tabelrijen behalve de eerste

Hoe verwijder ik met jQuery alle rijen in een tabel behalve de eerste? Dit is mijn eerste poging om indexkiezers te gebruiken. Als ik de voorbeelden goed begrijp, zou het volgende moeten werken:

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

wat ik zou lezen als “Wikkel een tabel in een jQuery-object en verwijder vervolgens alle ‘tr’-elementen (rijen) waarvan de elementindex van dergelijke rijen groter is dan nul”. In werkelijkheid wordt het uitgevoerd zonder een fout te genereren, maar verwijdert het geen rijen uit de tabel.

Wat mis ik en hoe los ik dit op? Ik zou natuurlijk gewoon javascript kunnen gebruiken, maar ik heb zoveel plezier met jQuery dat ik dit zou willen oplossen met jQuery.


Antwoord 1, autoriteit 100%

Dit zou moeten werken:

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

Antwoord 2, autoriteit 21%

Ik denk dat dit leesbaarder is gezien de bedoeling:

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

Het gebruik van kinderen zorgt ook voor het geval dat de eerste rij een tabel bevat door de diepte van de zoekopdracht te beperken.

Als je een TBODY-element had, kun je dit doen:

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

Als je THEAD- of TFOOT-elementen hebt, moet je iets anders doen.


Antwoord 3, autoriteit 9%

Een andere manier om dit te bereiken is door de functie empty() van jQuery te gebruiken met de elementen thead en tbody in je tabel.

Voorbeeld van een tafel:

<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>

En het jQuery-commando:

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

Hierdoor worden alle rijen in het tbody-element van uw tabel verwijderd en blijft het thead-element op de plaats waar uw header zou moeten staan. Het kan handig zijn als u alleen de inhoud van een tabel wilt vernieuwen.


Antwoord 4, autoriteit 7%

Als ik het was, zou ik het waarschijnlijk terugbrengen tot een enkele selector:

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

Antwoord 5, autoriteit 6%

Uw selector hoeft niet in uw verwijdering te staan.

Het zou er ongeveer zo uit moeten zien:

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

Dat betekent: selecteer elke rij behalve de eerste in de tabel met de ID van tableID en verwijder ze uit de DOM.


Antwoord 6, autoriteit 2%

$('#table tr').slice(1).remove();

Ik herinner me dat ik tegenkwam dat ‘slice’ sneller is dan alle andere benaderingen, dus plaats het hier maar.


Antwoord 7

Beschouw een tabel met id tbl: de jQuery-code zou zijn:

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

Antwoord 8

Gebruik de onderstaande code om alle rijen te verwijderen, behalve de eerste (behalve koptekst):

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


Antwoord 9

Gemakkelijkste manier:

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

-verwijs eerst naar de tabel
-verkrijg de lijst met elementen en snijd deze in stukken en verwijder de geselecteerde elementen van de lijst


Antwoord 10

-Sorry Dit is een zeer late antwoord.

De eenvoudigste manier waarop ik elke rij heb gewijzigd (en alle andere rijen door iteratie) is dit

$ (‘# Rowid’, ‘# tableid’). Verwijderen ();

De rest is eenvoudig.

Other episodes