Di bawah ini kita akan mempelajari cara mengurutkan tabel HTML, menggunakan JavaScript.
Klik tombol untuk mengurutkan tabel menurut abjad, berdasarkan nama pelanggan:
<!DOCTYPE html> <html> <head> <title>Sort a HTML Table Alphabetically</title> <style> table { border-spacing: 0; width: 100%; border: 1px solid #ddd; } th, td { text-align: left; padding: 16px; } tr:nth-child(even) { background-color: #f2f2f2 } </style> </head> <body> <p>Klik tombol untuk mengurutkan tabel menurut abjad, berdasarkan nama:</p> <p><button >var table, rows, switching, i, x, y, shouldSwitch; table = document.getElementById("myTable"); switching = true; /*Buat looping yang akan berlanjut sampai tidak ada switching yang dilakukan:*/ while (switching) { //mulai dengan: belum ada switching yang selesai: switching = false; rows = table.rows; /*Ulangi melalui semua baris tabel (kecuali pertama, yang berisi header tabel):*/ for (i = 1; i < (rows.length - 1); i++) { //mulailah dengan mengatakan seharusnya tidak ada switching: shouldSwitch = false; /*Dapatkan dua elemen yang ingin dibandingkan, satu dari baris saat ini dan satu dari baris berikutnya:*/ x = rows[i].getElementsByTagName("TD")[0]; y = rows[i + 1].getElementsByTagName("TD")[0]; //periksa apakah kedua baris harus bertukar tempat: if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { // jika demikian, tandai sebagai switching dan hentikan looping: shouldSwitch = true; break; } } if (shouldSwitch) { /*Jika switch telah ditandai, lakukan switching dan tandai bahwa switch telah dilakukan:*/ rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; } } } </script> </body> </html>
Section Artikel
Contoh
<!DOCTYPE html> <html> <head> <title>Sort a HTML Table Alphabetically</title> <style> table { border-spacing: 0; width: 100%; border: 1px solid #ddd; } th, td { text-align: left; padding: 16px; } tr:nth-child(even) { background-color: #f2f2f2 } </style> </head> <body> <p>Klik tombol untuk mengurutkan tabel menurut abjad, berdasarkan nama:</p> <p><button >
Klik header untuk mengurutkan tabel.
Klik “Nama” untuk mengurutkan berdasarkan nama dan “Negara” untuk mengurutkan berdasarkan negara.
Pertama kali kita mengklik, arah pengurutannya adalah menaik (A ke Z).
Contoh
<!DOCTYPE html> <html> <head> <title>Sort a HTML Table Alphabetically</title> <style> table { border-spacing: 0; width: 100%; border: 1px solid #ddd; } th { cursor: pointer; } th, td { text-align: left; padding: 16px; } tr:nth-child(even) { background-color: #f2f2f2 } </style> </head> <body> <p><strong>Klik header untuk mengurutkan tabel. </strong> </p> <p> Pertama kali mengeklik, arah pengurutan adalah ascending (A ke Z). </p> <p> Klik lagi, dan arah pengurutan akan descending (Z ke A): </p> <table id="myTable"> <tr> <!--Saat header diklik, jalankan fungsi sortTable, dengan parameter, 0 untuk mengurutkan berdasarkan nama, 1 untuk mengurutkan berdasarkan negara:--> <th >dir, switchcount = 0; table = document.getElementById("myTable"); switching = true; //Atur arah penyortiran ke ascending: dir = "asc"; /*Buat looping yang akan berlanjut sampai tidak ada switching yang dilakukan:*/ while (switching) { //mulailah dengan mengatakan: tidak ada switching yang dilakukan: switching = false; rows = table.rows; /*Ulangi melalui semua baris tabel (kecuali pertama, yang berisi header tabel):*/ for (i = 1; i < (rows.length - 1); i++) { //mulailah dengan mengatakan seharusnya tidak ada switching: shouldSwitch = false; /*Dapatkan dua elemen yang ingin dibandingkan, satu dari baris saat ini dan satu dari baris berikutnya:*/ x = rows[i].getElementsByTagName("TD")[n]; y = rows[i + 1].getElementsByTagName("TD")[n]; /*periksa apakah dua baris harus bertukar tempat, berdasarkan arah, asc atau desc:*/ if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { //jika demikian, tandai sebagai switcing dan hentikan looping: shouldSwitch= true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { //jika demikian, tandai sebagai switch dan hentikan looping: shouldSwitch = true; break; } } } if (shouldSwitch) { /*Jika switch telah ditandai, lakukan switching dan tandai bahwa switch telah dilakukan:*/ rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; //Setiap kali switching dilakukan, tingkatkan hitungan ini dengan 1: switchcount ++; } else { /*Jika tidak ada switching yang dilakukan DAN arahnya adalah "ascending", atur arah ke "desc" dan jalankan while loop lagi.*/ if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script> </body> </html>
Contoh
<!DOCTYPE html> <html> <head> <title>Sort a HTML Table Numerically</title> <style> table { border-spacing: 0; width: 100%; border: 1px solid #ddd; } th, td { text-align: left; padding: 16px; } tr:nth-child(even) { background-color: #f2f2f2 } </style> </head> <body> <p>Click the button to sort the table numerically:</p> <p><button >