Проблема с пользовательским парсером jQuery TableSorter - PullRequest
0 голосов
/ 12 сентября 2011
<script type="text/javascript">
    $(document).ready(function() {

        jQuery.tablesorter.addParser({
            id: "commaDigit",
            is: function(s) {
                return false;
            },
            format: function(s) {
                var stripped = s.replace("%","")
                     .replace(/€/g, '')
                     .replace(/^\s+|\s+$/g,"")
                     .replace(",", "")
                     .replace(".", "");
                console.log(s + " -> " + stripped);
                return jQuery.tablesorter.formatFloat(stripped);
            },
            type: "numeric"
        });         

        $("#repStatiOttica").tablesorter({widgets: ['zebra']});

    });
</script>

Некоторые из моей разметки:

...
<thead>
    <tr>
        <th class="{sorter: 'text'}"><b>Stato</b></th>
        <th><b>Ordini</b></th>
                <th class="{sorter: 'commaDigit'}"><b>Ordini %</b></th>
...

Текст и целые числа (первый и второй столбец) сортируются правильно.

Я попытался этот синтаксический анализатор, чтобы разобрать ряд чисел, как это:

"23,19%";«6,89%»;«0,50%»

или

«€ 6,240,44»;«€ 15.000,25»;"€ 100,00"

Можете ли вы помочь мне адаптировать мой парсер к моему случаю?

Пожалуйста, отвечайте только с проверенными решениями:)

Ответы [ 3 ]

0 голосов
/ 15 сентября 2011

Не знаю почему, но назначение сортировщиков в стиле разметки не работает. Решено с помощью свойства конфигурации tableorter "headers".

0 голосов
/ 14 сентября 2012

Для корректной работы метаданных анализатора необходим плагин метаданных jquery.

0 голосов
/ 12 сентября 2011

Ну, на самом деле вы делаете все хорошо, единственное, что TableSorter должен получить int значений. Поэтому при разборе значений следует использовать функцию parseInt для фактического целочисленного значения.

return parseInt(stripped);

...