Задать вопрос
MrNix21
@MrNix21

Как сортировать таблицу с ценами в JQuery?

Здравствуйте! Нашел скрипт сортировки таблицы, но он неправильно сортирует числовые значения. Как его исправить, чтобы сортировка по цене была правильная? Как я понимаю надо сначала строку преобразовать в число, но как это сделать в моем коде? Заранее спасибо за помощь!
function sort_price() 
{
 var table=$('#price-table');
 var tbody =$('#price-table-body');

 tbody.find('tr').sort(function(a, b) 
 {
  if($('#price_order').val()=='asc') 
  {
   return $('td:nth-child(7) .td-price', a).text().localeCompare($('td:nth-child(7) .td-price', b).text());
  }
  else 
  {
   return $('td:nth-child(7) .td-price', b).text().localeCompare($('td:nth-child(7) .td-price', a).text());
  }
    
 }).appendTo(tbody);
  
 var sort_order=$('#price_order').val();
 if(sort_order=="asc")
 {
  document.getElementById("price_order").value="desc";
 }
 if(sort_order=="desc")
 {
  document.getElementById("price_order").value="asc";
 }
}
  • Вопрос задан
  • 329 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Пример сортировки строк таблицы по цене на jQuery от большего к меньшему:
$('table#price-table > tbody > tr').sort(function(a, b) {
    var one = Number($(a).children().eq(6).text().replace(/[^0-9]/g, ''));
    var two = Number($(b).children().eq(6).text().replace(/[^0-9]/g, ''));
    return two - one;
}).each(function(n, tr) {
    $('table#price-table > tbody').append(tr);
});

Если цена будет указана с копейками, работать НЕ будет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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