Necessita de JQuery para selecionar uma tabela somente se sua 1ª linha tem mais de 1 coluna
-
03-07-2019 - |
Pergunta
Eu preciso selecionar e agir sobre um elemento de tabela com JQuery, mas somente quando ele contém pelo menos uma linha com mais de uma coluna. A seguir obras seletor, mas só me deixa parte maneira:
$('#my_table_is:has(tbody tr)').doSomething();
Variações eu tenho tentado sem sucesso são:
$('#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();
Que combinação de seletor e filtro irá fazer este trabalho?
BTW, a razão que eu preciso disso é que tablesorter com um multi-coluna sortList, aparentemente vai explodir quando há apenas 1 coluna na saída da tabela.
Solução
como sobre apenas uma boa verificação ole?
if (1 < $('#tbl thead th').size()) ...
Outras dicas
Não seria mais fácil para realmente correção o tablesorter em vez de hackers ao redor ? (Suponho que você quer dizer http://tablesorter.com/ ).
Eu consegui fazer isso com o seguinte seletor (também para uma versão antiga do TableSorter):
#tableID:has( tbody > tr > td + td )
A idéia é que ele vai encontrar a tabela somente se ele tem um tbody
com tr
de que tem pelo menos dois td
irmão na mesma.