2014-02-18 89 views
1

tablesorter不會正確排序1列,但另一個它!jquery tablesorter沒有正確排序負面貨幣

我已經嘗試了幾個不同的自定義分析器,但似乎沒有工作。看到這裏

http://jsfiddle.net/jybMB/

format: function(s) { 
      // format your data for normalization 

      var value = replaceAll(',','',s.toLowerCase()); 

      //value = replaceAll('-','',value); 

      //return parseFloat(value.replace('$', '')); 

      return $.tablesorter.formatFloat(value.replace(new  RegExp(/[^0-9-.]/g),"")); 
     }, 

你可以看到,Col1中不能正確排序,但不Col2中的例子。我懷疑這是與否定符號有關的事情,但奇怪的是,Col2沒有任何自定義分析器的工作。

+0

的問題是在'$( 「#servicesTable」)tablesorter'功能。如果你只用@Brandon提供的那個替換它(並且給出相同的id),你的代碼就可以工作[fiddle](http://jsfiddle.net/nT5qq/)。否則解析器中的代碼永遠不會執行(我在return語句之前添加了alert(「hello」)',並且它沒有被觸發 –

+0

感謝分享此問題!我將在下一次更新中修復貨幣分析器所以它會在貨幣符號後自動檢測到負值的貨幣 – Mottie

+0

@AB代碼在小提琴外工作正常,當然,如果您更改ID,代碼不會執行,它應該與它嘗試的表的ID相同排序,我已經在解析器函數之前提醒,警報不顯示,但我知道解析是工作人員 – user2760338

回答

4

怎麼是這樣的:

Live Demo

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'money', 
    is: function(s) { 
     // return false so this parser is not auto detected 
     return false; 
    }, 
    format: function(s) { 
     return parseInt(s.replace(/\$/,'').replace(/\,/,''),10); 
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 


$("#servicesTable").tablesorter({ 
    sortList: [[0,1]], 
    headers: 
    { 
     0 : { sorter: "money" }, 
     1 : { sorter: "money" }   
    } 
}); 
+0

謝謝作品,謝謝! – user2760338