如何排序列表
学习如何使用 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 = true; else if (dir == "desc") { 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++) { // ਪਹਿਲਾਂ ਘੋਸ਼ਣਾ ਦਿਓ: ਮੌਜੂਦਾ ਅਨੁਕਰਣ ਅਤੇ ਅਗਲੇ ਅਨੁਕਰਣ ਨੂੰ ਵਟਾਂਦਰਾ ਨਹੀਂ ਕਰਨਾ ਹੈ: /* ਕਰਨ ਲਈ ਕ੍ਰਮ ਦਿਸ਼ਾ (ਵਧਦੀ ਜਾਂ ਘਟਦੀ) ਚੇਕ ਕਰੋ: */ if (dir == "asc") { if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) { /* ਜੇਕਰ ਅਗਲੇ ਅਨੁਕਰਣ ਦਾ ਅਕਸ਼ਰ ਕਰਮ ਮੌਜੂਦਾ ਅਨੁਕਰਣ ਤੋਂ ਪਹਿਲਾਂ ਹੈ ਤਾਂ ਵਟਾਂਦਰਾ ਕਰਨ ਲਈ ਟੈਗ ਕਰੋ ਅਤੇ ਮੌਜੂਦਾ ਸਰਕਲ ਬੰਦ ਕਰੋ: */ shouldSwitch = true; else if (dir == "desc") { 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 ਵਧਾਓ 1: switchcount ++; } /* ਜੇਕਰ ਕੋਈ ਵਟਾਂਦਰਾ ਨਹੀਂ ਹੋਇਆ ਅਤੇ ਦਿਸ਼ਾ "ਵਧਦੀ" ਹੈ ਤਾਂ ਦਿਸ਼ਾ "ਘਟਦੀ" ਸੈਟ ਕਰੋ ਅਤੇ ਮੁੜ ਤੋਂ while ਸਰਕਲ ਚਲਾਓ */ if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>
ਨੰਬਰ ਦੇ ਅਨੁਸਾਰ ਲਿਸਟ ਨੂੰ ਕਰਨ ਲਈ ਕ੍ਰਮਵਾਰ ਕਰੋ
ਉਦਾਹਰਣ
if (Number(b[i].innerHTML) > Number(b[i + 1].innerHTML)) { shouldSwitch = true; break; }