JQuery n'a besoin de sélectionner une table que si sa 1ère ligne a plus d'une colonne
-
03-07-2019 - |
Question
Je dois sélectionner et utiliser un élément de tableau avec JQuery, mais uniquement s'il contient au moins une ligne avec plus d'une colonne. Le sélecteur suivant fonctionne, mais ne me permet que partiellement:
$('#my_table_is:has(tbody tr)').doSomething();
Les variantes que j'ai essayées sans succès sont les suivantes:
$('#my_table_id:has(tbody > tr > td:eq(1))').doSomething();
$('#my_table_id:has(tbody tr:nth-child(1))').doSomething();
$('#my_table_id:has(td:eq(1))').doSomething();
Quelle combinaison de sélecteur et de filtre fonctionnera?
BTW, la raison pour laquelle j’ai besoin de ça, c’est que le trieur de tables avec une sorteListe multi-colonnes va apparemment exploser quand il n’ya qu’une colonne dans la sortie du tableau.
La solution
que diriez-vous d'un bon vieux chèque?
if (1 < $('#tbl thead th').size()) ...
Autres conseils
Ne serait-il pas plus facile de réparer le serveur de table au lieu de bidouiller ? (Je suppose que vous voulez dire http://tablesorter.com/ ).
J'ai réussi à le faire avec le sélecteur suivant (également pour une ancienne version de TableSorter):
#tableID: a (tbody > tr > td + td)
L’idée est qu’elle ne trouvera la table que si elle contient un tbody
avec un tr
comportant au moins deux frères td
dans il.