Я использую jQuery Tablesorter и имею проблему с порядком, в котором парсеры применяются к столбцам таблицы. Я добавляю собственный анализатор для обработки валюты вида $ -3.33.
$.tablesorter.addParser({
id: "fancyCurrency",
is: function(s) {
return /^\$[\-]?[0-9,\.]*$/.test(s);
},
format: function(s) {
s = s.replace(/[$,]/g,'');
return $.tablesorter.formatFloat( s );
},
type: "numeric"
});
Кажется, проблема в том, что встроенный парсер валют имеет преимущество перед моим парсером. Я мог бы поместить синтаксический анализатор в код самого TableSorter (до синтаксического анализатора валюты), и он работает правильно, но это не очень поддерживаемо. Я не могу указать сортировщик вручную, используя что-то вроде:
headers: {
3: { sorter: "fancyNumber" },
11: { sorter: "fancyCurrency" }
}
, поскольку столбцы таблицы генерируются динамически из пользовательских данных. Я полагаю, что одним из вариантов было бы указать сортировщик для использования в качестве класса css и использовать JQuery для явного указания сортировщика, например , который предлагает этот вопрос , но я бы предпочел придерживаться динамического обнаружения, если возможно. 1011 *