JQuery-TableSorter-Komma-Ziffer-Parser funktioniert nicht
Hier ist mein problem,
Ich bin derzeit mit dem JQuery Tabelle Sorter und ich fand eine Komma-Ziffer-parser auf das web. Das problem, das ich habe ist, es scheint nicht zu funktionieren.
So, hier ist, was die Spalte sortiert ist, wie:
- 4,666
- 141,666
- 293
- 341,666
- 346
- 461,676
Diese sortiert werden sollen, wie
- 293
- 346
- 4,666
- 141,666
- 341,666
- 461,676
Den parser, den ich verwende ist dieses:
$( function() {
$.tablesorter.addParser({
id: "fancyNumber",
is: function(s) {
return /^[0-9]?[0-9,\.]*$/.test(s);
},
format: function(s) {
return $.tablesorter.formatFloat(s.replace(/,/g, ''));
},
type: "numeric"
});
});
Ich weiß nicht genau ich falsch mache. Bin ich laden Sie es falsch? Ist der parser falsch? Ich brauche echt Hilfe hier, und habe zu kämpfen mit diesem problem für eine Weile jetzt.
Edit:, Weil, wie Generiere ich meine Spalten und die Spalten dürfen vom Benutzer gewählt werden, ich würde nie wissen, welche header ist in und nicht. Ich habe versucht mit der class="{sorter: 'fancyNumber'}" - Befehl, wie hier angegeben: http://tablesorter.com/docs/example-meta-parsers.html
**Edit:**Es sieht aus wie eine der Spalten ist richtig, aber diese Spalte ist noch immer Probleme. vielleicht, weil es Ziffern und Komma getrennte Ziffern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für jeden, der kommt über diese Frage. Ich hatte, um die Klasse zu meiner Kopfzeile. Also für alle header, die ich wollte, um ausgefallene Art, habe ich noch diese Klasse:
Dieser drehte sich auf den sorter standardmäßig, die es zu arbeiten schön.
Was mich erkennen, meine Fehler in meinen Möglichkeiten war, sich auf den debugger so gerne.
headers: { 5: 'mysorter' }
- und hey presto.class="{sorter: 'numeric'}"
hat nicht funktioniert; ich hatte nicht in der<th>
Eintrag! Klar, wenn gedacht, aber ich wusste nicht, Stelle es auf den ersten. Ihr Beitrag hat mir geholfen, danke!Dies kann auch passieren, wenn Sie vergessen haben, enthalten die Metadaten plugin
** Hier gepostet, da dies war das erste suchergebnis bei Google.
hier, was ich getan habe:
arbeitete mit Komma-und Punkt-separator.
testen http://jsbin.com/equci5
Ich habe eine Lösung gefunden, die für mich gearbeitet.
In der tablesorter.js ändern Sie die formatFloat () - Funktion wie folgt:
Diese ersetzen die Kommas, die waren sich mit der Sortierung.
Die Antwort fand hier.
Hoffe, das hilft...!
Versuchen explizit die Zuordnung der parser in .tablesorter() Erklärung.
Siehe Quelle
Als Jared erwähnt hat, müssen Sie angeben, welche Spalte verwendet die Parser, wenn Sie nicht wissen, der index der Spalte, dann finden Sie Sie unserer die Nutzung dieser:
Ich, versuchen Sie diesen regulären Ausdruck: /(\d{1,3})?(\,\d{3})*/
Parser nur mal an die ersten tbody Zeile zu erkennen, welche parser zu verwenden. Ich vermute, deine erste Zeile hat keine Kommas drin. Ich lief in das gleiche problem, und schließlich nur gezwungen der parser wollte ich mit class="{sorter: 'fancyNumber'}"
Sind Sie komplett richtig, dass der parser sollte funktionieren, der Grund, warum es nicht ist, ist aufgrund von einen bug in dem plugin. Kurz gesagt das plugin denkt, es kann Sortieren von zahlen mit Kommas in Sie Sie richtig, und so nutzt die integrierte sorter, aber dann nicht, um Sie zu Sortieren korrekt.
Gibt es ein paar Möglichkeiten, es zu beheben.
Erstens kann man (wie oben vorgeschlagen) erzwingen Sie die Verwendung Ihrer Sortier-Funktion (entweder in der oder in die javascript Initialisierung des plugins).
Zweitens können Sie das plugin verwenden Ihre Funktionen den Vorzug zu Ihrem eigenen sind, dies kann erreicht werden durch eine Umkehrung der Richtung der for-Schleife in Zeile 220 der plugin.
Drittens kann man den gebrochenen Standard-Sortier-Verhalten geändert wird, entweder die Ziffer-Erkennung-Funktion nicht akzeptieren Kommas (Linie 861 des plugins) oder durch ändern der Standard-Nummer sorter zu handhaben Kommata (Zeile 852 des plugins).
Ich angesprochen haben, dieses Thema auf die tablesorter google code Seite: http://code.google.com/p/tablesorter/issues/detail?id=6
Ich habe eine Lösung gefunden, die für mich gearbeitet. In der tablesorter.js ändern Sie die formatFloat () - Funktion wie folgt:
Diese ersetzen die Kommas, die waren sich mit der Sortierung. Fand die Antwort hier. Hoffe, das hilft...!