如何排序列表
学习如何使用 JavaScript 对 HTML 列表进行排序。
单击该按钮可按字母顺序对列表进行排序:
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
创建排序函数
အကြောင်းကြားချက်
<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"); // အခြေခံ အရာ ကို လုပ်ဆောင်ပါ for (i = 0; i < (b.length - 1); i++) { // 首先声明:当前项与下一项不应该交换位置 shouldSwitch = false; /* 检查下一项是否应该与当前项交换位置: */ if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* နောက်အရာကို အစိတ်အကျိတ် ကြောင်းကြားချက် အဖြစ် လုပ်ဆောင်ပြီး အပတ်လည်ခန့် ကို အပြန်လည်လည် လုပ်ဆောင်ပါ */ shouldSwitch = true; break; } } if (shouldSwitch) { /* လုပ်ဆောင်မှုမရှိဘဲ အပတ်လည်ခန့်ကို လုပ်ဆောင်ပြီး လုပ်ဆောင်ခဲ့သော အပတ်လည်ခန့် ကို လုပ်ဆောင်ခဲ့သော အပတ်လည်ခန့် အဖြစ် လုပ်ဆောင်ပါ */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; } } } </script>
升序和降序排序
第一次单击该按钮时,排序方向为升序(A 到 Z)。
再次点击,排序方向为降序(Z 到 A):
- Oslo
- Stockholm
- Helsinki
- Berlin
- Rome
- Madrid
အကြောင်းကြားချက်
<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; // ဖွဲ့စည်းထားသော ခြေဖုံး အဖြစ် "တိုးမြှင့်" အဖြစ် ပြင်ဆင်ပါ dir = "asc"; // အပတ်လည်ခန့် ကို အပြန်လည်လည် လုပ်ဆောင်ပါ အထူးသဖြင့် အခြေခံ အရာ မရှိ အထိ while (switching) { // ပထမပိုင်း ကြောင်းကြားချက်: အခြေခံ အရာ မရှိ switching = false; b = list.getElementsByTagName("LI"); // အခြေခံ အရာ ကို လုပ်ဆောင်ပါ for (i = 0; i < (b.length - 1); i++) { // ပထမပိုင်း ကြောင်းကြားချက်: အခြေခံ နောက်အရာ နှင့် အခြေခံ အရာ ကို အပတ်လည်ခန့် မပြုပါ shouldSwitch = false; /* ဖွဲ့စည်းထားသော ခြေဖုံး ("တိုးမြှင့်" သို့မဟုတ် "ကွက်ကွက်") အဖြစ် နောက်အရာ ကို အခြေခံပြီး အခြေခံအရ အပတ်လည်ခန့် အဖြစ် လုပ်ဆောင်ပါ */ if (dir == "asc") { if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* နောက်အရာကို အစိတ်အကျိတ် ကြောင်းကြားချက် အဖြစ် လုပ်ဆောင်ပြီး အပတ်လည်ခန့် ကို အပြန်လည်လည် လုပ်ဆောင်ပါ */ shouldSwitch = true; break; } } if (b[i].innerHTML.toLowerCase() < b[i + 1].innerHTML.toLowerCase()) { /* နောက်အရာကို အစိတ်အကျိတ် ကြောင်းကြားချက် အဖြစ် လုပ်ဆောင်ပြီး အပတ်လည်ခန့် ကို အပြန်လည်လည် လုပ်ဆောင်ပါ */ shouldSwitch= true; break; } } } if (shouldSwitch) { /* လုပ်ဆောင်မှုမရှိဘဲ အပတ်လည်ခန့်ကို လုပ်ဆောင်ပြီး လုပ်ဆောင်ခဲ့သော အပတ်လည်ခန့် ကို လုပ်ဆောင်ခဲ့သော အပတ်လည်ခန့် အဖြစ် လုပ်ဆောင်ပါ */ b[i].parentNode.insertBefore(b[i + 1], b[i]); switching = true; // လုပ်ဆောင်မှုမရှိဘဲ ခြေဖုံး "တိုးမြှင့်" အပြင် အပတ်လည်ခန့်ကို အပြန်လည်လည် လုပ်ဆောင်ပါ switchcount ++; } /* လုပ်ဆောင်မှုမရှိဘဲ ခြေဖုံး "တိုးမြှင့်" ဖြစ်သော် ခြေဖုံး "ကွက်ကွက်" အဖြစ် ပြင်ဆင်ပြီး အပတ်လည်ခန့်ကို အပြန်လည်လည် အပြောင်းလဲပါ */ if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>
နေရာတွင် နည်းပါးစွာ စာရင်းကို ဖွဲ့စည်းထားပါ
အကြောင်းကြားချက်
if (Number(b[i].innerHTML) > Number(b[i + 1].innerHTML)) { shouldSwitch = true; break; }