Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2015, 12:56
Аватар для tvixa
Аспирант
Отправить личное сообщение для tvixa Посмотреть профиль Найти все сообщения от tvixa
 
Регистрация: 09.09.2013
Сообщений: 33

Сортировка строк в таблице
Добрый день. Возникла проблема, я получаю XML со списком и параметрами транзакций, и пробегая по нему each- ем заполняю таблицу. Соответственно первое строка таблицы содержит самую давнюю транзакцию из полученного списка, мне же нужно отсортировать по дате. Попытка использовать tablesort не увенчалась успехом, сортировал по сначала по дню а потом по алфавиту. Пробовала по разному - не получилось. Возникает вопрос как решить эту проблемку.
var table = '<table class="transactions-table" id="transactions-table">' +
                    '<thead>' +
                    '<tr>' +
                        '<th>Дата транзакции</th>' +
                        '<th>Партнёр</th>' +
                        '<th>Бонусы</th>' +
                        '<th>Сумма чека</th>' +
                    '</tr>' +
                    '</thead>';

                    for (var i = 0; i < transactions.length; i++) {
                        var transaction = transactions.get(i);
                        var merchantId = $(transaction).find("merchantId").text();
                        reqId = $(transaction).find("trnReqId").text();
                       /* var reqDate = (new Date($(transaction).find("trnReqDate").text().substring(0, 10))).toLocaleDateString('ru-RU',{  day: 'numeric', month: 'short'});*/

                        var monthsArr = ["Янв", "Фев", "Мар", "Апр", "Мая", "Июн",
                            "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"];
                        var dateObj = new Date($(transaction).find("trnReqDate").text().substring(0, 10));
                        var month = dateObj.getMonth();
                        var numDay = dateObj.getDate();
                        var reqDate =  numDay + " " + monthsArr[month];

                        var reference = $(transaction).find("reference").text();
                        var merchantName = $(transaction).find("merchantName").text();
                        var salesPointTitle = $(transaction).find("salesPointTitle").text();
                        var srcTrnAmountChange = $(transaction).find("srcTrnAmountChange").text().replace(',', '.');
                        var bonusesCharged = $(transaction).find("bonusesCharged").text().replace(',', '.');
                        var bonusesWithdrawn = $(transaction).find("bonusesWithdrawn").text().replace(',', '.');
                        var bonusesChargedRev = $(transaction).find("bonusesChargedRev").text().replace(',', '.');
                        var bonusesWithdrawnRev = $(transaction).find("bonusesWithdrawnRev").text().replace(',', '.');
                        if(bonusesChargedRev != 0){
                            bonusesCharged = bonusesWithdrawnRev ;
                        }
                        if (bonusesWithdrawnRev != 0){
                            bonusesWithdrawn = bonusesChargedRev;
                        }
                        totalSrcTrnAmountChange += parseFloat(srcTrnAmountChange);
                        totalBonusesCharged += parseFloat(bonusesCharged);
                        totalBonusesWithdrawn += parseFloat(bonusesWithdrawn);
                        table = table +
                        '<tr>' +
                            '<td class="trans_day">' +reqDate+ '</td>' +
                            '<td>' + " <img class='transactions_img'  src='../images/merchants/" + merchantId + "_200x200.png'" +"onerror='this.onerror=null;this.src=\"../images/merchants/nologo_200x200.gif\"' height='200' width='200' >"   + '</td>' +
                            '<td id="'+reqId+'"><span class="trans_add">+'+bonusesCharged+"</span><br/><span class='trans_del'>-"+ bonusesWithdrawn + '</span></td>' +
                            '<td >' + srcTrnAmountChange + '</td>' +
                            '</tr>';
                    }
                    table = table + '<tfoot>' +
                    '<tr class="alt">' +
                        '<td colspan="2">Всего: </td>' +
                        '<td style="width: 30%">Накоплено: <span class="trans_add">+' + totalBonusesCharged.toFixed(2) +"</span><br/>Списано: <span class='trans_del'>-"+ totalBonusesWithdrawn.toFixed(2) +'</span></td>' +
                        '<td>' + totalSrcTrnAmountChange.toFixed(2) + '</td>' +
                        '</tr>' +
                        '</tfoot>' +
                        '</table>';
                    $('#transactionsData_' + cardId + ' #transactions_' + cardId).append(table);
                    $('#transactions-table_' + cardId).tablesorter();
                }

Спасибо за внимание
Ответить с цитированием
  #2 (permalink)  
Старый 03.11.2015, 13:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

tvixa, мысли вслух
в строку 43 добавить данные для примера

'<td class="trans_day"  data-reg="' +dateObj+'">'
а плагину указать что сортировать нужно не по тексту ячейки а по этим данным data-reg ... читать документацию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по таблице и перестановка строк KemPavel jQuery 2 19.10.2015 12:28
Сортировка строк в таблице Apollon Общие вопросы Javascript 15 26.11.2013 03:18
Подсчитать кол-во строк в таблице? bobroff jQuery 3 04.12.2009 12:29
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02
поменять цвет у нескольких строк в таблице Root Элементы интерфейса 4 21.04.2008 10:30