Como filtrar/procurar lista

Aprenda a usar JavaScript para criar listas de filtragem.

Filtrar lista

Como usar JavaScript para procurar itens na lista.

Experimente pessoalmente

Criar lista de pesquisa

Primeiro passo - Adicionar HTML:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Procurar nomes..">
<ul id="myUL">
  <li><a href="#">Adele</a></li>
  <li><a href="#">Agnes</a></li>
  <li><a href="#">Billy</a></li>
  <li><a href="#">Bob</a></li>
  <li><a href="#">Calvin</a></li>
  <li><a href="#">Christina</a></li>
  <li><a href="#">Cindy</a></li>
</ul>

Atenção:Neste exemplo, usamos href="#" porque não temos uma página para linkar. Na prática, isso deve ser um URL real para uma página específica.

Segundo passo - Adicionar CSS:

Definir o estilo do elemento de entrada e da lista:

#myInput {
  background-image: url('/css/searchicon.png'); /* Adicionar ícone de pesquisa ao campo de entrada */
  background-position: 10px 12px; /* Posicionar o ícone de pesquisa */
  background-repeat: no-repeat; /* Não repetir a imagem do ícone */
  width: 100%; /* Largura total */
  font-size: 16px; /* Aumentar o tamanho da fonte */
  padding: 12px 20px 12px 40px; /* Adicionar alguns espaços internos */
  border: 1px solid #ddd; /* Adicionar borda cinza */
  margin-bottom: 12px; /* Adicionar espaço abaixo do campo de entrada */
}
#myUL {
  /* Remover estilo de lista padrão */
  list-style-type: none;
  padding: 0;
  margin: 0;
}
#myUL li a {
  border: 1px solid #ddd; /* Adicionar borda para todos os links */
  margin-top: -1px; /* Prevenir bordas duplas */
  background-color: #f6f6f6; /* Cor de fundo cinza */
  padding: 12px; /* Adicionar alguns espaços internos */
  text-decoration: none; /* Remover sublinhado padrão de texto */
  font-size: 18px; /* Aumentar o tamanho da fonte */
  color: black; /* Adicionar cor de texto preta */
  display: block; /* Tornar em um elemento de bloco para preencher toda a lista */
}
#myUL li a:hover:not(.header) {
  background-color: #eee; /* Adicionar efeito de sobreposição para todos os links (exceto o título) */
}

Terceiro passo - Adicionar JavaScript:

<script>
function myFunction() {
  // Declarar variáveis
  var input, filter, ul, li, a, i, txtValue;
  input = document.getElementById('myInput');
  filter = input.value.toUpperCase();
  ul = document.getElementById("myUL");
  li = ul.getElementsByTagName('li');
  // Varre todos os itens da lista e oculta aqueles que não correspondem à consulta de pesquisa
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    txtValue = a.textContent || a.innerText;
    if (txtValue.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>

Experimente pessoalmente

Dica:Se desejar uma pesquisa sensível a maiúsculas e minúsculas, remova o toUpperCase().

Páginas relacionadas

Tutorial:Como filtrar/buscar uma tabela