Advertisement
MizunoBrasil

HTML + Javascript

Jul 4th, 2023
881
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 1.91 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Tabela de Nomes e E-mails</title>
  6.     <style>
  7.         table, th, td {
  8.             border: 1px solid black;
  9.             border-collapse: collapse;
  10.             padding: 5px;
  11.         }
  12.         .arrow {
  13.             cursor: pointer;
  14.         }
  15.     </style>
  16. </head>
  17. <body>
  18.     <table id="tabela">
  19.         <thead>
  20.             <tr>
  21.                 <th>
  22.                     Nome
  23.                     <span class="arrow" onclick="ordenarNomes()"></span>
  24.                 </th>
  25.                 <th>Email</th>
  26.             </tr>
  27.         </thead>
  28.         <tbody>        
  29.             <tr>
  30.                 <td>Maria</td>
  31.                 <td>maria@example.com</td>
  32.             </tr>
  33.             <tr>
  34.                 <td>Carlos</td>
  35.                 <td>carlos@example.com</td>
  36.             </tr>
  37.             <tr>
  38.                 <td>Ana</td>
  39.                 <td>ana@example.com</td>
  40.             </tr>
  41.            
  42.  
  43.             </tbody>
  44.         </table>
  45.  
  46.         <script>
  47.             var ordemCrescente = true; // Indica se a ordenação está em ordem crescente ou decrescente
  48.  
  49.             function ordenarNomes() {
  50.                 var tabela, linhas, i, x, y, trocar;
  51.                 tabela = document.getElementById("tabela");
  52.                 trocar = true;
  53.  
  54.                 while (trocar) {
  55.                     trocar = false;
  56.                     linhas = tabela.rows;
  57.  
  58.                     for (i = 1; i < (linhas.length - 1); i++) {
  59.                         x = linhas[i].getElementsByTagName("td")[0];
  60.                         y = linhas[i + 1].getElementsByTagName("td")[0];
  61.  
  62.                         if (ordemCrescente) {
  63.                             if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
  64.                                 linhas[i].parentNode.insertBefore(linhas[i + 1], linhas[i]);
  65.                                 trocar = true;
  66.                                 break;
  67.                             }
  68.                         } else {
  69.                             if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
  70.                                 linhas[i].parentNode.insertBefore(linhas[i + 1], linhas[i]);
  71.                                 trocar = true;
  72.                                 break;
  73.                             }
  74.                         }
  75.                     }
  76.                 }
  77.  
  78.                 // Altera a seta conforme a ordenação
  79.                 var seta = tabela.getElementsByTagName("span")[0];
  80.                 if (ordemCrescente) {
  81.                     seta.innerHTML = "▼";
  82.                     ordemCrescente = false;
  83.                 } else {
  84.                     seta.innerHTML = "▲";
  85.                     ordemCrescente = true;
  86.                 }
  87.             }
  88.         </script>
  89.     </body>
  90.     </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement