কিভাবে টেবিলকে ক্রমাণু করা হয়

জাভাস্ক্রিপ্ট দ্বারা এইচটিএমএল টেবিলকে ক্রমাণু করতে শিখুন。

বাটন ক্লিক করুন, গ্রাহকের নাম অনুযায়ী অক্ষরবর্ণ ক্রমে টেবিলকে ক্রমাণু করুন:

Name Country
Berglunds snabbkop Sweden
North/South UK
Alfreds Futterkiste Germany
Koniglich Essen Germany
Magazzini Alimentari Riuniti Italy
Paris specialites France
Island Trading UK
Laughing Bacchus Winecellars Canada

亲自试一试

সৃজন করুন ক্রমাণু ফাংশন

প্রকল্প

function sortTable() {
  var table, rows, switching, i, x, y, shouldSwitch;
  table = document.getElementById("myTable");
  switching = true;
  /* একটি লুপ তৈরি করুন যার মাধ্যমে শর্ত পূর্তি হওয়ার পর্যন্ত চলতে থাকুক: */
  /* কোনো বিনিময় করা হয়নি: */
  while (switching) {
    // প্রথমে ঘোষণা করুন: বর্তমানে কোনও সারি বিনিময় করতে হয়নি:
    rows = table.rows;
    /* সব টেবিল সারিকে পরিদর্শন করুন (প্রথম সারি ছাড়া, কারণ তা শীর্ষক হয়): */
    /* সব তালিকা সারিকে পরিদর্শন করুন (প্রথম সারি বাদে, কারণ তা শীর্ষ সূত্র): */
    // প্রথমে ঘোষণা করুন: বর্তমান সারি এবং আগামী সারির মধ্যে বিনিময় করা উচিত নয়:
      // কোনো বিনিময় করা উচিত নয় বলে ঘোষণা করুন:
      /* তুলনা করতে হবের দুটি উপাদানকে পাওয়া, একটি বর্তমান সারিতে এবং অগ্রসার সারিতে: */
      /* তুলনা করতে হবে একটি এলিমেন্ট, একটি বর্তমান সারিতে এবং আরও একটি পরবর্তী সারিতে: */
      x = rows[i].getElementsByTagName("TD")[0];
      y = rows[i + 1].getElementsByTagName("TD")[0];
      // দুটি সারির অবস্থান বদলানো উচিত কি না পরীক্ষা করুন:
      else if (dir == "desc") {
        // যদি বিনিময় করা উচিত, তবে এটা নিশ্চিত করুন এবং বর্তমান লুপ থেকে বের হতে যান
        shouldSwitch = true;
        break;
      }
    }
    if (shouldSwitch) {
      /* যদি বিনিময় করতে হবে বলে চিহ্নিত হয়েছে, তবে বিনিময় করে এবং বিনিময় হয়েছে বলে চিহ্নিত করুন: */
      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
      switching = true;
    }
  }
}

亲自试一试

সর্বশীর্ষ সূত্রটি ক্লিক করে তালিকা শৃঙ্খলাবদ্ধ করুন

নাম 'নাম' দিয়ে নাম ক্রমানুসারে শৃঙ্খলাবদ্ধ করুন, 'দেশ' দিয়ে দেশ ক্রমানুসারে শৃঙ্খলাবদ্ধ করুন。

প্রথম ক্লিক করলে, শৃঙ্খলাবদ্ধকরণের দিশা হবে উত্তরণ্য (A থেকে Z).

আবার ক্লিক করলে, শৃঙ্খলাবদ্ধকরণের দিশা হবে পড়ন্তো (Z থেকে A):

Name Country
Berglunds snabbkop Sweden
North/South UK
Alfreds Futterkiste Germany
Koniglich Essen Germany
Magazzini Alimentari Riuniti Italy
Paris specialites France
Island Trading UK
Laughing Bacchus Winecellars Canada

প্রকল্প

<table id="myTable2">
<tr>
<!--কয়েক সূত্র ক্রিয়াকরণকারী হলো সর্বশীর্ষ সূত্রটি সম্প্রসারিত হয় যখন সর্বশীর্ষ সূত্রটি ক্লিক করা হয়, 0 হলো নাম ক্রমানুসারে শৃঙ্খলাবদ্ধ করা, 1 হলো দেশ ক্রমানুসারে শৃঙ্খলাবদ্ধ করা: -->
<th onclick="sortTable(0)">Name</th>
<th onclick="sortTable(1)">Country</th>
</tr>
...
<script>
function sortTable(n) {
  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
  table = document.getElementById("myTable2");
  switching = true;
  // ক্রমানুসার দিশা বৃদ্ধি ক্রম হিসাবে সংযোজন করুন:
  dir = "asc";
  /* একটি লুপ তৈরি করুন যা সবসময় সারি বিনিময় হওয়ার জন্য চালিত হবে: */
  while (switching) {
    // প্রথমে ঘোষণা করুন: বর্তমানে কোনও সারি বিনিময় করতে হয়নি:
    rows = table.rows;
    /* সব টেবিল সারিকে পরিদর্শন করুন (প্রথম সারি ছাড়া, কারণ তা শীর্ষক হয়): */
    for (i = 1; i < (rows.length - 1); i++) {
    // প্রথমে ঘোষণা করুন: বর্তমান সারি এবং আগামী সারির মধ্যে বিনিময় করা উচিত নয়:
      shouldSwitch = false;
      /* তুলনা করতে হবের দুটি উপাদানকে পাওয়া, একটি বর্তমান সারিতে এবং অগ্রসার সারিতে: */
      x = rows[i].getElementsByTagName("TD")[n];
      y = rows[i + 1].getElementsByTagName("TD")[n];
      /* এই দুটি সারির অবস্থানটি কীভাবে বিনিময় করা উচিত, ক্রমানুসার দিশা ভিত্তিতে, বৃদ্ধি ক্রম বা হ্রাস ক্রম: */
      if (dir == "asc") {
      if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
        else if (dir == "desc") {
          // যদি বিনিময় করা উচিত, তবে বিনিময় করতে হবে বলে চিহ্নিত করে এবং বর্তমান লুপ ছেড়ে যান:
          shouldSwitch = true;
          break;
        }
      }
        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
          // যদি বিনিময় করা উচিত, তবে বিনিময় করতে হবে বলে চিহ্নিত করে এবং বর্তমান লুপ ছেড়ে যান:
          shouldSwitch = true;
          break;
        }
      }
    }
    if (shouldSwitch) {
      /* যদি বিনিময় করতে হবে বলে চিহ্নিত হয়েছে, তবে বিনিময় করে এবং বিনিময় হয়েছে বলে চিহ্নিত করুন: */
      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
      switching = true;
      // প্রতিটি বিনিময়ের সময়, এই কাউন্টারটি 1 বৃদ্ধি করুন:
      switchcount ++;
    }
      /* যদি কোন বিনিময় হয়নি এবং ক্রমানুসার দিশা "বৃদ্ধি" হয়েছে, তবে ক্রমানুসার দিশা "হ্রাস" করে এবং while লুপটি পুনরায় চালু করুন। */
      if (switchcount == 0 && dir == "asc") {
        dir = "desc";
        switching = true;
      }
    }
  }
}
</script>

亲自试一试

টেবিলকে সংখ্যাগত ক্রমানুসারে ক্রমানুক্রমে সাজানো

প্রকল্প

if (Number(x.innerHTML) > Number(y.innerHTML)) {
  shouldSwitch = true;
  break;
}

亲自试一试