jQuery Tablesorter - analisador personalizado não está funcionando
-
07-07-2019 - |
Pergunta
Eu estou tentando escrever um analisador personalizado para o plugin jQuery, Tablesorter . A idéia é para ele para classificar os números em ordem decrescente no primeiro clique.
No entanto, quando eu ordenar a tabela, a ordem não muda. Às vezes algumas linhas mover, mas a maioria deles ficar na mesma. Aqui está o código:
$.tablesorter.addParser({
id: 'desc',
is: function(s) { return false },
format: function(s) {
return 1.0 / parseFloat( s.replace(/,/g,'') );
},
type: 'numeric'
});
fino Os outros analisadores que eu escrevi estão funcionando. Eu tentei 9999 menos o número em vez de 1,0 dividido por isso, no caso de um problema com carros alegóricos (sem sorte).
Solução
Eu encontrei uma solução. I tinha algumas células vazias em cada coluna, que estavam a ser analisados ??como "NaN". Por esta asneira a ordenação, eu não sei (células em branco foram intermitentemente espaçadas com números regulares, não havia nenhuma ordem para qualquer coisa).
Em suma, este código funciona para a função de formatação:
format: function(s) {
if ( s == '' )
return 0;
return -parseInt( s.replace(/,/g,'') );
}
Outras dicas
Para classificar algo em ordem numérica inversa, para mim o caminho natural para ir é para multiplicar por -1, em vez dos métodos que você tentou.
Como para o próprio analisador, o único aviso diferença que é que você está retornando um número real, enquanto que o nofollow analisador exemplo no site Tablesorter retorna um string. Talvez converter o valor de volta para string antes de retornar ele iria trabalhar?