Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][jQuery] Sortowanie listy
Forum PHP.pl > Forum > Przedszkole
tzm
Edit: całość przerobiona na tyle że nie ma co pytać o stare rozwiązanie.

  1. <ol>
  2. <li>Czas: 00:02.362 ( 213123 )<span class="score">0002362</span></li>
  3. <li>Czas: 00:02.210 ( Tomasz )<span class="score">0002210</span></li>
  4. </ol>

[JAVASCRIPT] pobierz, plaintext
  1. jQuery.each(localStorage, function(i, value) {
  2. var data = JSON.parse(value);
  3. if (data['gametype'] === gameType) {
  4. $('#best ol').append('<li>' + data['score'] + ' ( ' + data['username'] + ' )<span class="score">'+data['toSort']+'</span></li>');
  5. console.log(data);
  6. }
  7. });
  8. }
[JAVASCRIPT] pobierz, plaintext


No i pytanie, bo walcze od 4 godzin i nic sensownego w google nie mogę znaleźć, jak posortować elementy w liście już istniejącej wg wartości SCORE? specjalnie tak sformatowałem czas żeby łatwo było na niej operować, PHP jest znacznie lepszy pod tym względem:/

Sugestie?
lukasz_os
spakuj wszystko do tablicy o kluczu score i zwykły sort...
SmokAnalog
Ja bym wywalił <span> z wartością ułatwiającą sortowanie, poradzimy sobie bez tego. Te czasy są wbrew pozorom bardzo wygodne do sortowania nawet z dwukropkami i kropkami. Powiedz skąd bierzesz te dane, bo musimy wiedzieć co dokładnie sortować - czy wartość z localStorage czy może lepiej już przed zapisem do localStorage.
tzm
No Smok, przecież tam widać że to z localStorage. Tak, to localStorage.
Nie bardzo sobie wyobrażam jak to sortować bez wartości 'uproszczonej' czyli sformatowanego czasu, chętnie posłucham co o tym myślisz i jak byś to zrobił, może się okażę dobrym rozwiązaniem i nie będę musiał do Storage zapisywać jeszcze jednego elemetu - skoro jest wg. Ciebie nie potrzebny.


Finalnie teraz to wymyśliłem tak że w tym eachu będę dopisywał do jakiejś tablicy te wyniki, sortował - i potem forem wyświetlał w ten sam sposób co teraz. No ale nie mam jak tego teraz sprawdzić więc zamieniam się w ucho.

Dzięki za chęci!
trueblue
  1. var array=[
  2. {
  3. "score" : "00:02.362",
  4. "username" : "user1",
  5. "toSort":"0002362"
  6. },
  7. {
  8. "score" : "00:02.210",
  9. "username" : "user2",
  10. "toSort":"0002210"
  11. },
  12. {
  13. "score" : "00:02.199",
  14. "username" : "user3",
  15. "toSort":"0002199"
  16. }
  17. ]
  18.  
  19. array.sort(function(a,b){
  20. var x=a['toSort'];
  21. var y=b['toSort'];
  22. return ((x<y)?-1:((x>y)?1:0));
  23. });
  24. console.log(array);
tzm
[JAVASCRIPT] pobierz, plaintext
  1. for(i=0;i<array.length;i++){alert('Użytkownik: '+array[i]['username']+' osiągnął czas: '+array[i]['score'])}
[JAVASCRIPT] pobierz, plaintext


Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.