Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 9.03.2017 Ostrzeżenie: (0%)
|
Mam taki skrypt:
Kod <!DOCTYPE HTML> <html> <head> <title> Sort a list alphabetically </title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script> </head> <body> <button> click here </button> <ul> <li>Geeks</li> <li>Sosna</li> <li>Zebra</li> <li>GeeksForGeeks</li> <li><h1>G</h1></li> <li><h1>F</h1></li> <li>Arbuz</li> <li><h1>A</h1></li> <li>Łódź</li> <li><h1>Ł</h1></li> <li>ósmy</li> <li><h1>Ó</h1></li> <li>święty</li> <li><h1>Ś</h1></li> <li>ärgern</li> <li><h1>Ä</h1></li> <li>Österreich</li> <li><h1>Ö</h1></li> <li>Überraschung</li> <li><h1>Ü</h1></li> </ul> <script> function Ascending_sort(a, b) { return ($(b).text().toUpperCase()) < ($(a).text().toUpperCase()) ? 1 : -1; } $('button').on('click', function() { $("ul li").sort(Ascending_sort).appendTo('ul'); }); </script> </body> </html> Codepen: https://codepen.io/rudolph-reti/pen/dyPzXER Dopiero zacząłem uczyć się JavaScriptu. Myślę, że jeszcze sporo materiału musiałbym przerobić zanim sam poradziłbym sobie z tym, dlatego bardzo proszę o pomoc. Chciałbym, żeby lista była sortowana za pomocą funkcji localeCompare(). Czy mógłby mi ktoś pomóc wpleść ją w ten kod? Ten post edytował stellatus 29.12.2019, 12:55:43 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 9.03.2017 Ostrzeżenie: (0%)
|
Dzięki! Działa, choć nie rozumiem jeszcze jak! Jestem Wam bardzo wdzięczny za pomoc (IMG:style_emoticons/default/guitar.gif)
https://codepen.io/rudolph-reti/pen/OJPzPqw Kod <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <body onload="finallListSort()"> <ul> <li> <li> <h3>F</h3> </li> <li>fajka</li> <li>Füchsin</li> <li>film</li> <li>Friedrich</li> <li>fuga</li> <li>Fuß</li> <li> <h3>G</h3> </li> <li>gönnen</li> <li>garnek</li> <li>Geschäft</li> <li>grom</li> <li>groß</li> <li> <h3>J</h3> </li> <li>jaźń</li> <li>Jänner</li> <li> <h3>L</h3> </li> <li> <h3>S</h3> </li> <li> <h3>B</h3> </li> <li>samochód</li> <li>U</li> <li>Urlich</li> <li> <h3>Ü</h3> </li> <li>Überraschung</li> <li> <h3>Z</h3> </li> <li>Zecke</li> <li>złoto</li> <li> <h3>Ż</h3> </li> <li>żółć</li> <li>Leute</li> <li>Lüge</li> <li>ludzie</li> <li> <h3>M</h3> </li> <li>mur</li> <li>müde</li> <li> <h3>O</h3> </li> <li>oczy</li> <li>oft</li> <li> <h3>Ö</h3> </li> <li>Österreich</li> <h3>A</h3> </li> <li>Affe</li> <li>arbuz</li> <li> <h3>Ä</h3> </li> <li>ärgern</li> <li>aß</li> <li>baba</li> <li>Bier</li> <li>Büro</li> </ul> </body> Kod const alphabet = "aäąbcćdeęfghijklłmnńoóöprsśßtuüwyzźż";
function letterSort(a, b) { b = $(b).text().trim().toLowerCase(); a = $(a).text().trim().toLowerCase(); // Find the first position were the strings do not match let position = 0; while(a[position] === b[position]) { // If both are the same don't swap if(!a[position] && !b[position]) return 0; // Otherwise the shorter one goes first if(!a[position]) return 1; if(!b[position]) return -1; position++; } // Then sort by the characters position return alphabet.indexOf(a[position]) - alphabet.indexOf(b[position]); } function finallListSort() { $("ul li").sort(letterSort).appendTo('ul'); }; Ten post edytował stellatus 5.01.2020, 19:29:14 |
|
|
|
stellatus [HTML][JavaScript] sortowanie za pomocą localeCompare() 29.12.2019, 12:52:38
nospor No to zamiast
return ($(.text().toUpperCase(... 30.12.2019, 11:31:26
stellatus Dzięki Tutaj jest trochę zmodyfikowana wersja:
... 1.01.2020, 14:50:52
nospor U mnie sortuje prawidlowo wiec pewnie nie masz wgr... 2.01.2020, 12:04:21
stellatus Mam Firefoxa 71, więc powinno działać. 3.01.2020, 10:56:53
nospor Pisalem o dwoch potencjalnych problemach 3.01.2020, 11:04:36
stellatus No tak, sorry. Chodzi o to, że "nie mam wgran... 3.01.2020, 15:48:52
nospor No ze musisz dograc do systemu paczke z jezykiem n... 3.01.2020, 15:52:37
stellatus Do jakiego systemu? Windowsa i Firefoxa mam już po... 3.01.2020, 22:07:42
nospor Kiepski ten twoj niemiecki w takim razie
Dobra, ... 4.01.2020, 09:52:35
stellatus Nie rozumiem co masz na myśli mówiąc "przykła... 4.01.2020, 11:40:57
nospor No podaj przyklad paru slow, w kolejnosci jaka chc... 4.01.2020, 11:43:18
stellatus OK. Tak jak w poprzednich przykładach duże litery ... 4.01.2020, 11:57:23
nospor Nie ogarniam tego co piszesz. Ewidentnie jestem za... 4.01.2020, 12:34:13
stellatus To ja jestem głupi:) Sorry, napisałeś przecież wyr... 4.01.2020, 13:04:53
nospor No to drugi przyklad zalatwia ci w pelni localeCom... 4.01.2020, 17:26:02
trueblue Cytat(stellatus @ 4.01.2020, 11:57:23... 4.01.2020, 17:36:30
stellatus Nie wiedziałem gdzie tę metodę wprowadzić, więc do... 5.01.2020, 12:20:58
trueblue Działa poprawnie. Wielkie litery w alfabecie mają ... 5.01.2020, 12:27:19 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 23:16 |