Как сделать сложную сортировку в jQuery tableSorter? - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть таблица со следующими данными:

Cell1        Cell2
Computers     10  
   Dell       5
   IBM        3
   Compaq     2
HDDs          12
   Seagate    7
   Samsung    3
   Test       2
Monitors      18
   Seagate    7
   Samsung    9
   Dell       1

Теперь, если я сортирую по ячейке 2, это уничтожает формат и помещает 18,12,10 и т. Д. Есть ли способ сохранить строки в «родительском» от сортировки? Например, если бы я сортировал по Cell2

Cell1        Cell2
Monitors      18  
   Seagate    7
   Samsung    9
   Dell       1
HDDs          12
   Seagate    7
   Samsung    3
   Test       2
Computers     10
   Dell       5
   IBM        3
   Compaq     2

Таким образом, дочерние строки не сортируются вообще, а родители сортируются, сохраняя порядок детей.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Не так сложно отсортировать некоторые элементы, учитывая parent и некоторые elems:

// custom compare function for sorting by numbers
function sortByNumber( a, b ) {
  if ( + a.innerHTML < b.innerHTML ) return -1;
  else if( + a.innerHTML > b.innerHTML ) return 1;
  else return 0;
}

var parent = ...;

// convert to array, to make sorting possible
var items = jQuery.makeArray( elems );
var len   = items.length;

// do the item sorting by their value
items = items.sort( sortByNumber );

// append them back to the parent in order
for ( var i = 0; i < len; i++ ) {
  parent.appendChild( items[i] );
}

Теперь вы можете сделать это в цикле для подкатегорий в зависимости от разметки.*

0 голосов
/ 18 февраля 2011

вы можете попробовать этот плагин http://p.sohei.org/stuff/jquery/tablegroup/demo/demo.html

...