如何排序列表
- Edellinen sivu Suodatus pudotusvalikko
- Seuraava sivu Järjestä taulukko
学习如何使用 JavaScript 对 HTML 列表进行排序。
单击该按钮可按字母顺序对列表进行排序:
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
创建排序函数
esimerkki
<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; /* 创建一个循环,该循环将持续进行,直到没有需要交换的项为止: */ while (switching) { // 首先声明:当前没有需要交换的项 switching = false; b = list.getElementsByTagName("LI"); // Käy läpi kaikki lista-elementit: for (i = 0; i < (b.length - 1); i++) { // 首先声明:当前项与下一项不应该交换位置 shouldSwitch = false; /* 检查下一项是否应该与当前项交换位置: */ jos (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* Jos seuraavan kohteen kirjainjärjestys on nykyisen kohteen ennen, merkki vaihdettavaksi ja poistu nykyisestä silmukasta: */ jos (dir == "desc") { break; } } jos (shouldSwitch) { /* Jos on merkitty vaihdettavaksi, suorita vaihtotoiminto ja merkki vaihdetuksi: */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; } } } </script>
升序和降序排序
第一次点击该按钮时,排序方向为升序(A 到 Z)。
再点击一次,排序方向为降序(Z 到 A):
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
esimerkki
<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; // Aseta järjestys suunnaksi nouseva: dir = "asc"; // Luo silmukka, joka jatkuu, kunnes ei ole enää vaihdettavia kohteita: while (switching) { // Ensimmäinen lausunto: ei ole vaihdettavia kohteita: switching = false; b = list.getElementsByTagName("LI"); // Käy läpi kaikki lista-elementit: for (i = 0; i < (b.length - 1); i++) { // Ensimmäinen lausunto: nykyinen ja seuraava kohta eivät ole vaihdettavissa: shouldSwitch = false; /* Tarkista, pitäisikö seuraava kohta vaihtaa paikkaa nykyisen kohteen kanssa suunnan mukaan (nouseva tai laskeva): */ jos (dir == "asc") { jos (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* Jos seuraavan kohteen kirjainjärjestys on nykyisen kohteen ennen, merkki vaihdettavaksi ja poistu nykyisestä silmukasta: */ jos (dir == "desc") { break; } } jos (b[i].innerHTML.toLowerCase() < b[i + 1].innerHTML.toLowerCase()) { /* Jos seuraavan kohteen kirjainjärjestys on nykyisen kohteen jälkeen, merkki vaihdettavaksi ja poistu nykyisestä silmukasta: */ shouldSwitch= true; break; } } } jos (shouldSwitch) { /* Jos on merkitty vaihdettavaksi, suorita vaihtotoiminto ja merkki vaihdetuksi: */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; // Vaihda switchcount 1:llä kerran jokaisen vaihdon yhteydessä: switchcount ++; } /* Jos ei ole tapahtunut vaihtoa ja suunta on "nouseva", aseta suunta "laskeva" ja suorita while-silmukka uudelleen. */ jos (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>
järjestä lista numerolla
esimerkki
jos (Number(b[i].innerHTML) > Number(b[i + 1].innerHTML)) { shouldSwitch = true; break; }
- Edellinen sivu Suodatus pudotusvalikko
- Seuraava sivu Järjestä taulukko