Comment puis-je supprimer toutes les lignes d'un tableau HTML à l'exception <th>
de celles qui utilisent Javascript, et sans parcourir toutes les lignes du tableau? J'ai une très grande table et je ne veux pas geler l'interface utilisateur pendant que je parcourt les lignes pour les supprimer
99
removeChild
ne prend qu'un seul élément DOM.Réponses:
Gardez la
<th>
ligne dans a<thead>
et les autres lignes dans a,<tbody>
puis remplacez le<tbody>
par un nouveau, vide.c'est à dire
la source
document.getElementById('tbody').innerHTML = '';
cela supprimera toutes les lignes:
la source
$("tbody#id tr").remove()
Très brut, mais cela fonctionne aussi:
la source
<th>
imbriqués dans un fichier<thead>
. C'est probablement la manière la plus syntaxiquement correcte de créer la table de toute façon.var bodyRef = document.getElementById('myTable').getElementsByTagName('tbody')[0];
bodyRef.innerHTML = '';
C'est une vieille question, mais j'ai récemment eu un problème similaire.
J'ai écrit ce code pour le résoudre:
Cela supprimera toutes les lignes, sauf la première.
À votre santé!
la source
Points à noter, à l' affût des erreurs courantes :
Si votre index de départ est 0 (ou un index du début), le code correct est:
REMARQUES
1. l'argument de deleteRow est fixe,
ceci est nécessaire car lorsque nous supprimons une ligne, le nombre de lignes diminue.
c'est à dire; au moment où j'atteins (rows.length - 1), ou même avant que cette ligne ne soit déjà supprimée, vous aurez donc une erreur / exception (ou une erreur silencieuse).
2. le rowCount est pris avant le début de la boucle for car à mesure que nous supprimons le "table.rows.length" continuera à changer, donc encore une fois vous avez un problème, que seules les lignes impaires ou paires sont supprimées.
J'espère que cela pourra aider.
la source
En supposant que vous n'ayez qu'une seule table afin de pouvoir la référencer avec uniquement le type. Si vous ne souhaitez pas supprimer les en-têtes:
autrement:
J'espère que ça aide!
la source
J'avais besoin de supprimer toutes les lignes à l'exception de la première et de la solution publiée par @strat mais cela a abouti à une exception non interceptée (référençant Node dans un contexte où il n'existe pas). Ce qui suit a fonctionné pour moi.
la source
Si vous pouvez déclarer un
ID
for,tbody
vous pouvez simplement exécuter cette fonction:la source
cela fonctionnerait la suppression d'itération dans le tableau HTML en natif
la source
le code ci-dessous fonctionne très bien. Il supprime toutes les lignes sauf la ligne d'en-tête. Donc ce code vraiment t
la source
Assing some id to tbody tag. c'est à dire . Après cela, la ligne suivante doit conserver l'en-tête / pied de page du tableau et supprimer toutes les lignes.
Et, si vous voulez que la table entière (en-tête / lignes / pied de page) soit effacée, définissez l'ID au niveau de la table, c'est-à-dire
la source
Si vous ne souhaitez pas supprimer
th
et que vous souhaitez simplement supprimer les lignes à l'intérieur, cela fonctionne parfaitement.la source
Que dis-tu de ça:
Lorsque la page se charge pour la première fois, procédez comme suit:
Ensuite, lorsque vous souhaitez vider le tableau:
Le résultat sera votre (vos) ligne (s) d'en-tête si c'est tout ce que vous avez commencé, les performances sont considérablement plus rapides que la boucle.
la source
Si vous avez beaucoup moins de
<th>
lignes que de non-<th>
lignes, vous pouvez rassembler toutes les<th>
lignes dans une chaîne, supprimer la table entière, puis écrire<table>thstring</table>
où la table se trouvait auparavant.EDIT: Où, évidemment, "thstring" est le code HTML pour toutes les lignes de
<th>
s.la source
<th>
s en tant qu'éléments DOM, effacez le fichier innerHTML de la table, puis ajoutez-y<th>
à nouveau les s.Cela fonctionne dans IE sans même avoir à déclarer une var pour la table et supprimera toutes les lignes:
la source
c'est un code simple que je viens d'écrire pour résoudre ce problème, sans supprimer la ligne d'en-tête (la première).
J'espère que ça marche pour toi!!.
la source
Attribuez un identifiant ou une classe à votre corps.
Vous pouvez nommer votre identifiant ou votre classe comme vous le souhaitez, pas nécessairement
#tbodyId
ou.tbodyClass
.la source
Effacez simplement le corps de la table.
la source
table const = document.querySelector ('table'); table.innerHTML === ''? null: table.innerHTML = ''; le javascript ci-dessus a bien fonctionné pour moi. Il vérifie si le tableau contient des données, puis efface tout, y compris l'en-tête.
la source