2011-11-11 2 views
2

어쨌든 간다 :jQuery를 테이블 정렬 및 통화 문제

페이지를 참조 : 참조 http://greg-j.com/icvm/anticartel/search-results.html

플러그인 : http://tablesorter.com/

마지막에 보면 "Total Fines"에 대한 두 개의 열을 보면 통화 출력에 $ x.xxx billion 및 $ x.xxx millions이 포함되어 있습니다. 기본 제공 통화 분석기는이 형식을 고려하지 않습니다. 다행히도 플러그인을 사용하면 your own parser을 쓸 수 있습니다. 그러나, 나는 어디에도 가지 않고있는 I 'm와 나는 다른 누군가로부터 약간의 도움을 얻을 수 있기를 바라고있다.

도움을 주시면 감사하겠습니다.

답변

3

내가 그것을 테스트하지 않았습니다 참조 :

$.tablesorter.addParser({ 
    id: 'monetary', 

    'is': function(s) { 
     return false; 
    }, 

    format: function(s) { 

     var i = s.split('$').join(''); 

     var suffixes = [ 
      {name:'thousand', mult: 1000}, 
      {name:'million', mult: 1000000}, 
      {name:'billion', mult: 1000000000}, 
      {name:'trillion', mult: 1000000000000} 
     ]; 

     for (var j in suffixes) { 
      if (i.indexOf(' '+suffixes[j].name) != -1) { 

       i = i.split(' '+suffixes[j].name).join(''); 

       val = parseFloat(i) * suffixes[j].mult; 
      } 
     } 

     return val; 
    }, 

    type: 'numeric' 
}); 


$("#cartels").tablesorter({ 
    widgets: ['zebra'], 
    sortList: [[0,0]], 
    headers: { 
     4: { 
      sorter:'monetary' 
     }, 
     5: { 
      sorter:'monetary' 
     } 
    } 
}); 
+0

나는 당신이 아주 가까운 것 같아요. 헤더 배열은 0베이스이므로 5와 6 대신 헤더 4와 5가 있습니다. 그러나 헤더 4는 이상하게 정렬됩니다. 예제 페이지를 업데이트했습니다. – S16

+0

메모 : 표시된 숫자의 값으로 val이 반환되는 대신 (여기에서 내가 알고있는 것), 1000000, 1000000000 또는 1000000000000으로 반환됩니다. – S16

+0

문제점을 발견하고 업데이트했습니다. 암호. 동료를 검토하고 승인하십시오. 도움을 주셔서 대단히 감사합니다! – S16

1

시도한 코드를 게시 할 수 있습니까?

그것은 그들이 당신이별로 정렬 후 숫자 표현으로 각각의 단어를 할당하고 배치의 예에서 무엇을하고 있는지 같다

: 대체 할 수 귀하의 경우 그래서

return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);

한 가지 방법을 수 백만의 정확한 숫자와 10 억의 동일한 숫자. 따라서 파서가 염려하는 한 $ 1 백만은 $ 1,000,000으로 평가됩니다. 바꾸기 기능이 평가되면

return s.toLowerCase().replace(/million/,000000).replace(/billion/,000000000);

그래서 s$1000000로 평가하고있다. 그냥 생각. 잘 작동하는지는 확실하지 않지만 올바른 방향으로 인도 할 수 있습니다. 이 작동하는 경우