![]() |
![]() |
![]() ![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 10:58 |