Como filtrar/buscar tabela
- Página anterior Filtrar lista
- Próxima página Filtrar elementos
Aprenda a usar JavaScript para criar tabelas filtráveis.
Filtrar tabela
Como usar JavaScript para buscar dados específicos em uma tabela.
Nome | Country |
---|---|
Alfreds Futterkiste | Alemanha |
Berglunds snabbkop | Suécia |
Island Trading | Reino Unido |
Koniglich Essen | Alemanha |
Laughing Bacchus Winecellars | Canadá |
Magazzini Alimentari Riuniti | Itália |
Norte/Sul | Reino Unido |
Specialidades de Paris | França |
Criar uma tabela filtrável
Primeiro passo - Adicionar HTML:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Procurar nomes.."> <table id="myTable"> <tr class="header"> <th style="width:60%;">Nome</th> <th style="width:40%;">País</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Alemanha</td> </tr> <tr> <td>Berglunds snabbkop</td> <td>Suécia</td> </tr> <tr> <td>Island Trading</td> <td>Reino Unido</td> </tr> <tr> <td>Koniglich Essen</td> <td>Alemanha</td> </tr> </table>
Segundo passo - Adicionar CSS:
Definir estilos para o elemento de entrada e a tabela:
#myInput { background-image: url('/css/searchicon.png'); /* Adicionar ícone de pesquisa na caixa de entrada */ background-position: 10px 12px; /* Posicionar ícone de pesquisa */ background-repeat: no-repeat; /* Não repetir imagem do ícone */ width: 100%; /* Largura total */ font-size: 16px; /* Aumentar tamanho da fonte */ padding: 12px 20px 12px 40px; /* Adicionar espaçamento interno */ border: 1px solid #ddd; /* Adicionar borda cinzenta */ margin-bottom: 12px; /* Adicionar espaço abaixo da caixa de entrada */ } #myTable { border-collapse: collapse; /* Mesclar bordas */ width: 100%; /* Largura total */ border: 1px solid #ddd; /* Adicionar borda cinzenta */ font-size: 18px; /* Aumentar o tamanho da fonte */ } #myTable th, #myTable td { text-align: left; /* Alinhar texto à esquerda */ padding: 12px; /* Adicionar margem interna */ } #myTable tr { /* Adicionar borda inferior a todas as linhas da tabela */ border-bottom: 1px solid #ddd; } #myTable tr.header, #myTable tr:hover { /* Adicionar cor de fundo cinza para o cabeçalho da tabela e ao passar o mouse sobre ele */ background-color: #f1f1f1; }
Terceiro passo - Adicionar JavaScript:
<script> function myFunction() { // Declarar variáveis var input, filter, table, tr, td, i, txtValue; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); table = document.getElementById("myTable"); tr = table.getElementsByTagName("tr"); // Percorrer todas as linhas da tabela e ocultar aquelas que não correspondem à consulta de pesquisa for (i = 0; i < tr.length; i++) { td = tr[i].getElementsByTagName("td")[0]; if (td) { txtValue = td.textContent || td.innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { tr[i].style.display = ""; } else { tr[i].style.display = "none"; } } } } </script>
Dica:Se quiser realizar uma pesquisa case-sensitive, remova toUpperCase()
.
Dica:Se desejar buscar o país (índice 1) em vez de "nome" (índice 0), por favor tr[i].getElementsByTagName('td')[0]
Mudar para [1].
Páginas relacionadas
Tutorial:Como filtrar/buscar lista
- Página anterior Filtrar lista
- Próxima página Filtrar elementos