jQuery supprimer toutes les lignes de la table à l'exception de la première
À l'aide de jQuery, comment puis-je supprimer toutes les lignes dans une table à l'exception de la première? Ceci est ma première tentative à l'aide de l'indice de sélecteurs. Si je comprends les exemples correctement, la suivante devrait fonctionner:
$(some table selector).remove("tr:gt(0)");
qui je pourrais lire que "Enveloppez de la table dans un objet jQuery, puis supprimer tous les 'tr' éléments (lignes) où l'élément d'index de ces lignes est supérieure à zéro". En réalité, il s'exécute sans générer une erreur, mais ne supprime pas les lignes de la table.
Ce qui me manque, et comment puis-je résoudre ce problème? Bien sûr, je pourrais l'utiliser directement en javascript, mais je vais avoir tellement de plaisir avec jQuery que j'aimerais résoudre ce à l'aide de jQuery.
- Quelqu'un sait pourquoi le code ne fonctionne pas ? J'ai aussi des problème lors de la mise sélecteur de filtre en fonction de suppression
- Maintenant que je comprends mieux, le code ci-dessus ne fonctionne pas parce que $(une table sélecteur sélectionne uniquement l'élément de la table, pas un de ses enfants, donc il n'y a pas 'tr' éléments pour la fonction de suppression de trouver. À l'aide de la fonction de recherche des recherches pour trouver les correspondances entre les enfants de l'élément de la table.
- Regardez cette réponse stackoverflow.com/questions/4831334/...
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
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 vous conseille d'utiliser $("#mytable > tr").tranche(1).remove();Je pense que c'est plus lisible compte tenu de l'intention:
De l'utilisation d'enfants prend également soin de le cas où la première ligne contient un tableau en limitant la profondeur de la recherche.
Si vous avez eu une TBODY élément, vous pouvez le faire:
Si vous avez THEAD ou de pied de page des éléments que vous aurez besoin de faire quelque chose de différent.
$('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 le thead et tbody éléments dans votre table.
Exemple de tableau:
Et le jQuery de commande:
Cela supprimera toutes les lignes contenues dans le tbody élément de votre table et de garder l'élément thead où votre tête devrait être. Il peut être utile lorsque vous souhaitez actualiser uniquement le contenu d'une table.
Si c'était moi, je serais probablement réduire à un seul sélecteur:
Votre sélecteur n'a pas besoin d'être à l'intérieur de votre supprimer.
Il devrait ressembler à quelque chose comme:
Qui signifie sélectionner toutes les lignes sauf la première dans la table avec l'ID de tableID et de les retirer de la DOM.
Envisager une table avec id
tbl
: le jQuery, le code serait:Je me souviens de venir à travers cette "tranche" est plus rapide que toutes les autres approches, donc il suffit de le mettre ici.
Pour Supprimer toutes les lignes, sauf la première (à l'exception de l'en-tête), utilisez le code ci-dessous:
$("#dataTable tr:gt(1)").remove();
-Désolé, c'est très retard de réponse.
La façon la plus simple que j'ai trouvé pour supprimer une ligne (et toutes les autres lignes par itération) est-ce
$('#rowid','#tableid').remove();
Le reste est facile.
enveloppé dans une fonction:
ensuite l'appeler:
Cela fonctionne parfaitement
Ce système a fonctionné de la manière suivante dans mon cas et fonctionne bien
Façon la plus simple :
-première référence de la table
-obtenir la liste des éléments et coupez-le en tranches et de supprimer les éléments sélectionnés de la liste