2011-01-03 11 views
0

Ich verwende jquery/tablesorter für meine Tabelle, deren Spalten eine Mischung aus Text und Ziffern sind. Alles hat gut funktioniert. Als nächstes habe ich eine neue Datumsspalte hinzugefügt und jetzt sind die Header vollständig deaktiviert. Ich kann keine Spalten sortieren. Ich feuerte Firebug und ich sehe einen Fehler, wenn die Seite geladen wird:jquery/tablesorter-Header deaktiviert, wenn Datumsspalte

s.replace keine Funktion ist in dem unten stehenden Code

this.formatFloat = function (s) { 
    var i = parseFloat(s.replace(/,/g, '')); 
    return (isNaN(i)) ? 0 : i; 
}; 

Wenn ich einen Haltepunkt setzen und den Wert von s sehen, Für die Datumsspalte ist es eine Zahl wie 736283783, während für alle anderen eine Zeichenfolge wie "1" oder "123" ist. Ich habe verschiedene Formate für Datum wie "TT/MM/JJ", "TT-MM-JJJJ", "1. Januar 2011" usw. ohne Glück versucht.

Update: Der obige Code ist in jquery.tablesorter.js. Es ist nicht der Code, den ich geschrieben habe.

sieht Meine Tabelle Quelle wie folgt aus:

<table id="historyTable" class="fullwidth sortable"> 
     <thead> 
      <tr> 
       <th>Status</th> 
       <th>Start</th> 
       <th>End</th> 
       <th>Type</th> 
       <th>Keyword</th> 
      </tr> 
     </thead> 
      <tr> 
       <td>Active</td> 
       <td>2008-09-18</td> 
       <td></td> 
       <td>Info</td> 
       <td>TF</td> 
      </tr> 
      <tr> 
       <td>Inactive</td> 
       <td>2010-09-18</td> 
       <td></td> 
       <td>Info</td> 
       <td>ZX</td> 
      </tr> 
     </table> 

Code Meine JS wird wie folgt nur den Aufruf tablesorter. jQuery ("table.sortable") tablesorter(); Was mache ich falsch?

+0

Kann die HTML-Post und JS tht kann ein wenig bessere Perspektive geben? – Chandu

+0

ok, Frage aktualisiert. – maheshmurthy

Antwort

2

versuchen Sie dies:

this.formatFloat = function (s) { 
    // add .toString() to convert it to a string 
    var i = parseFloat(s.toString().replace(/,/g, '')); 
    return (isNaN(i)) ? 0 : i; 
}; 

vielleicht würde es nicht funktionieren, weil s kein string ist?

Aktualisierung; so etwas wie folgt aus:

this.formatFloat = function (s) { 
    // add .toString() to convert it to a string<br/> 
    var strDate = new Date(s.toString().replace(/,/g, '')); 
    var i = parseFloat(strDate); 

    return (isNaN(i)) ? 0 : i; 
}; 
+0

aktualisiert die Frage. Dieser Code befindet sich in jquery.tablesorter.js. Ja, du hast recht. s ist keine Zeichenkette, die das Problem verursacht, aber nicht sicher, wo/wie es zu beheben ist. – maheshmurthy

+0

Konvertieren Sie einfach [es zurück zu einem Datum] (http://programming.top54u.com/post/Javascript-Convert-String-to-Date.aspx) –

+0

sie wollen einen Float zurückgeben, sehen Sie mein Update ... zuerst konvertieren es zu string nach diesem konvertieren sie zurück zu einem Datum und nach allem, was sie es zu einem float analysieren –

Verwandte Themen