Jinsi ya kirefu orodha
Jifunze jinsi ya kusaidia JavaScript kufanya kirefu kwa orodha ya HTML.
Bofa hiki gurusha kufanya kirefu kwa mpangilio wa heri:
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
Pata ujumbe wa kirefu
mifano
<ul id="id01"> <li>Oslo</li> <li>Stockholm</li> <li>Helsinki</li> <li>Berlin</li> <li>Rome</li> <li>Madrid</li> </ul> <script> function sortList() { var list, i, switching, b, shouldSwitch; list = document.getElementById("id01"); switching = true; /* Pata ujumbe, ambao utakaa kutendeka hadi hawajafikia mbinu ya kusaidia kuteauza nafasi: */ while (switching) { // Kwanza kuthahidi: hana mbinu ya kusaidia kuteauza nafasi inayofikia switching = false; b = list.getElementsByTagName("LI"); // Kufikia kwa kumwita kila kipya kwenye orodha: for (i = 0; i < (b.length - 1); i++) { // Kwanza kuthahidi: mbinu ya kina na mbinu ya sasa haoweza kusaidia kuteauza nafasi shouldSwitch = false; /* Tathmini kama mbinu ya kina inaonekana kuendelea na mbinu ya sasa: */ inafichana (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* Ikiwa kama inayofuata kwa haraka inaonyesha kwa hivi karibuni, tukidai kwamba inafichana, na kichukua kirefu kwa kumaliza kirefu hivi: */ inafichana (dir == "desc") { break; } } inafichana (shouldSwitch) { /* Ikiwa inadaiwa kufichana, tukifanya kufichana na kumwambia kwamba kimefichana: */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; } } } </script>
Matokeo wa kirefu na kirefu chaguo
Kisha mtaani wa kwanza, matokeo wa kirefu ni kirefu (A kwa Z).
Mkisia mara, matokeo wa kirefu (Z kwa A):
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
mifano
<ul id="id01"> <li>Oslo</li> <li>Stockholm</li> <li>Helsinki</li> <li>Berlin</li> <li>Rome</li> <li>Madrid</li> </ul> <script> function sortListDir() { var list, i, switching, b, shouldSwitch, dir, switchcount = 0; list = document.getElementById("id01"); switching = true; // Kusaidia upeo wa mawasiliano wa "arusha": dir = "asc"; // Kuanza kirefu, kirefu kinasababisha kufikia mawasiliano ya kufichana kwa sasa: while (switching) { // Kwanza kumtaarisha: kwa sasa haukuna mawasiliano ya kufichana: switching = false; b = list.getElementsByTagName("LI"); // Kufikia kwa kumwita kila kipya kwenye orodha: for (i = 0; i < (b.length - 1); i++) { // Kwanza kumtaarisha: kipya na kipya kwa kumaliza hivi karibuni haukufichana na kipya inayofuata: shouldSwitch = false; /* Kuchukua upeo wa mawasiliano wa hivi karibuni kwa upeo wa "arusha" au "madhumisha": */ inafichana (dir == "asc") { inafichana (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* Ikiwa kama inayofuata kwa haraka inaonyesha kwa hivi karibuni, tukidai kwamba inafichana, na kichukua kirefu kwa kumaliza kirefu hivi: */ inafichana (dir == "desc") { break; } } inafichana (b[i].innerHTML.toLowerCase() < b[i + 1].innerHTML.toLowerCase()) { /* Ikiwa kama inayofuata kwa haraka inaonyesha kwa hivi karibuni, tukidai kwamba inafichana, na kichukua kirefu kwa kumaliza kirefu hivi: */ shouldSwitch= true; break; } } } inafichana (shouldSwitch) { /* Ikiwa inadaiwa kufichana, tukifanya kufichana na kumwambia kwamba kimefichana: */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; // Kila mara inafikia kufichana, switchcount inaongezwa 1: switchcount ++; } /* Ikiwa kimekutana na kama upeo wa mawasiliano haujafikia na upeo wa "arusha", tukisaidia upeo wa "madhumisha" na tenaenda kirefu kwa kufikia mawasiliano hivi. */ inafichana (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>
usoroka kwa upeo wa namba kwa orodha
mifano
inafichana (Number(b[i].innerHTML) > Number(b[i + 1].innerHTML)) { shouldSwitch = true; break; }