È necessario JQuery per selezionare una tabella solo se la sua prima riga ha più di 1 colonna
-
03-07-2019 - |
Domanda
Devo selezionare e agire su un elemento tabella con JQuery, ma solo quando contiene almeno una riga con più di una colonna. Il seguente selettore funziona, ma mi mette solo in parte:
$('#my_table_is:has(tbody tr)').doSomething();
Le variazioni che ho provato senza successo sono:
$('#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();
Quale combinazione di selettore e filtro farà funzionare tutto questo?
A proposito, il motivo per cui ho bisogno di questo è che il tableorter con un sortList multi-colonna, apparentemente esploderà quando c'è solo 1 colonna nell'output della tabella.
Soluzione
che ne dici di un buon controllo totale?
if (1 < $('#tbl thead th').size()) ...
Altri suggerimenti
Non sarebbe più facile riparare il tableorter invece di hackerare ? (Suppongo che intendi http://tablesorter.com/ ).
Sono riuscito a farlo con il seguente selettore (anche per una vecchia versione di TableSorter):
#tableID: has (tbody > tr > td + td)
L'idea è che troverà la tabella solo se ha un tbody
con un tr
che ha almeno due fratelli td
in esso.