jQuery tablesorter не сортирует число правильно

Можно ли просто изменить цикл для использования индекса (т.е. ДЛЯ вместо FOREACH)? Необходимо было бы циклично выполниться назад, конечно, т.е. количество 1 вниз для обнуления.

24
задан Jase 18 September 2017 в 15:39
поделиться

4 ответа

<th width=110 class=\"{sorter: 'digit'}\">Count</th>

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

Всем спасибо за ваше время и помощь

/ Fons

26
ответ дан 28 November 2019 в 22:36
поделиться

Можете ли вы также показать свой html? Tablesorter должен обнаруживать и обрабатывать числовую сортировку без каких-либо специальных параметров. Возможно ли, что ваши числовые значения окружены html? В этом случае вам может понадобиться специальный метод для извлечения значений из HTML.

Пример из указанной ссылки:

$(document).ready(function() { 

    // call the tablesorter plugin 
    $("table").tablesorter({ 
        // define a custom text extraction function 
        textExtraction: function(node) { 
            // extract data from markup and return it  
            return node.childNodes[0].childNodes[0].innerHTML; 
        } 
    }); 
});
0
ответ дан 28 November 2019 в 22:36
поделиться

Похоже, вам нужно дополнить числа. Это объясняет, почему 8, 7 и 4 упорядочиваются перед 32 и 31.

Попробуйте следующее:

function padLeft(s,len,c){
  c=c || '0';
  while(s.length< len) s= c+s;
  return s;
}

$("table").tablesorter({
  textExtraction: function(node) {         
    return padLeft(node.innerHTML,2);
  } 
});

Используйте значение больше 2, если вам нужно отсортировать большие числа.

2
ответ дан 28 November 2019 в 22:36
поделиться

Можно попробовать и это:

$(document).ready(function() { 
    $("table").tablesorter({ 
        // put other options here ...
        textExtraction: function(node) {  
            return parseInt($(node).text()); 
        } 
    }); 
});

... это рассматривает содержимое отсортированных ячеек как целые числа, после извлечения только текста.

2
ответ дан 28 November 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: