Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Najprostrze sortowanie
S_Olewniczak
post
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

Ostrzeżenie: (0%)
-----


Czy ktoś może mi napisać gotowy skrypt, lub naprowadzić, jak zrobić najprostszą funkcje do sortowania tabelki w js. Funkcja miała by trzy parametry
1. tabelka
2. Dowolny td z kolumny
3. Desc lub ASC
Bardzo proszę o pomoc.
Powód edycji: [erix] przeniosłem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
S_Olewniczak
post
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

Ostrzeżenie: (0%)
-----


Trochę pobolało ale w końcu sam napisałem funkcję o którą mi chodziło.
Wywołując funkcję sortTable jako pierwszy parametr podajesz tabelkę, jako drugi dowolne pole(td) z kolumny którą chcesz sortować, a jako trzeci jak sortować:
ros - rosnąco
mal - malejąco
Oto kod(zawiera jedną funkcję pomocniczą):
Kod
         function getNrInParent(child) {
         tds = child.parentNode.getElementsByTagName('td');
        
             for(var i=0;i<tds.length;i++) {
                 if(tds[i] == child) return i;
             }
         }
         function sortTable(table, td, how) {
         var trs = table.getElementsByTagName('tr');
        
         for(var i=1;i<trs.length;i++) {
         var actTr = trs[i];
        
         var tds = trs[i].getElementsByTagName('td');
        
         var nr = getNrInParent(td);
        
         var ActTd = tds[nr].innerHTML;
        
        
         for(var j=1;j<trs.length;j++) {//op wszystkich wierszach z wyj 1(nagłówki)
         var WieszAkt = trs[j].getElementsByTagName('td')[nr].innerHTML;
             if ((WieszAkt > ActTd && how=='ros') || (WieszAkt < ActTd && how=='mal')) {
                 table.insertBefore(actTr ,trs[j]);
                 var add = 1;break;
             }
         }//for
         if(!add) {
             //element na końcu
         table.appendChild(actTr);
         }
         }//endfor
         }//function

Może komuś się kiedyś przyda.
Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 19:45