À l'aide de jQuery, comment supprimer toutes les lignes d'une table, sauf la première? Ceci est ma première tentative d'utilisation de sélecteurs d'index. Si je comprends bien les exemples, les éléments suivants devraient fonctionner:
$(some table selector).remove("tr:gt(0)");
que je lirais comme "Envelopper un tableau dans un objet jQuery, puis supprimer tous les éléments" tr "(lignes) où l'index des éléments de ces lignes est supérieur à zéro". En réalité, il s'exécute sans générer d'erreur, mais ne supprime aucune ligne du tableau.
Qu'est-ce qui me manque et comment résoudre ce problème? Bien sûr, je pourrais utiliser du javascript simple, mais je m'amuse tellement avec jQuery que j'aimerais résoudre ce problème en utilisant jQuery.
jquery
jquery-selectors
Ken Paul
la source
la source
Réponses:
Cela devrait fonctionner:
la source
Because :gt() is a jQuery extension and not part of the CSS specification, queries using :gt() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").slice(index) instead.
je recommanderais d'utiliser $ ("# mytable> tr"). Slice (1) .remove ();Je pense que cela est plus lisible étant donné l'intention:
L'utilisation d'enfants prend également en charge le cas où la première ligne contient un tableau en limitant la profondeur de la recherche.
Si vous aviez un élément TBODY, vous pouvez le faire:
Si vous avez des éléments THEAD ou TFOOT, vous devrez faire quelque chose de différent.
la source
$('someTableSelector > tbody:last > tr:not(:first)').remove();
$("#tasks").children().remove();
Une autre façon d'y parvenir est d'utiliser la fonction empty () de jQuery avec les éléments thead et tbody dans votre table.
Exemple de tableau:
Et la commande jQuery:
Cela supprimera toutes les lignes contenues dans l'élément tbody de votre table et gardera l'élément thead là où votre en-tête devrait être. Cela peut être utile lorsque vous souhaitez actualiser uniquement le contenu d'une table.
la source
Si c'était moi, je le résumerais probablement à un seul sélecteur:
la source
Votre sélecteur n'a pas besoin d'être à l'intérieur de votre suppression.
Cela devrait ressembler à quelque chose comme:
Ce qui signifie sélectionner chaque ligne sauf la première du tableau avec l'ID de tableID et les supprimer du DOM.
la source
Je me souviens que rencontrer cette «tranche» est plus rapide que toutes les autres approches, alors mettez-la ici.
la source
gt
est obsolète, c'est la meilleure réponse.Considérons une table avec id
tbl
: le code jQuery serait:la source
Pour supprimer toutes les lignes, sauf la première (sauf l'en-tête), utilisez le code ci-dessous:
$("#dataTable tr:gt(1)").remove();
la source
Manière la plus simple:
-première référence à la table
-obtenir la liste des éléments et la découper et supprimer les éléments sélectionnés de la liste
la source
-Désolé, c'est une réponse très tardive.
La façon la plus simple que j'ai trouvée pour supprimer une ligne (et toutes les autres lignes par itération) est la suivante:
$ ('# rowid', '# tableid'). remove ();
Le reste est facile.
la source
la source
enveloppé dans une fonction:
puis appelez-le:
la source
Cela fonctionne parfaitement
la source
Cela a fonctionné de la manière suivante dans mon cas et fonctionne bien
la source