Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

123
Vistas
How to make filter list using JavaScript

How to make filter list which respond on user type. For example this is the list of data from the database.

<input type="search" class="search" name="search">
<ul class="find">
 <li>Bird</li>
 <li>Cabbage</li>
 <li>Cat</li>
 <li>Dog</li>
 <li>Eagle</li>
 <li>Egg</li>
 <li>Frog</li>
 <li>Fist</li>
</ul>

I don't have any JavaScript or jQuery code to show because I don't know how to do it. What I want when a user type the first letter in the search box it will filter on the list. For example user type the first letter in the search box letter B it should filter all the list that start with letter B and it doesn't matter if the letter typed is big or small. Is there anyone who can help me with this? Thank you.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

You can use datalist.

The HTML element contains a set of elements that represent the permissible or recommended options available to choose from within other controls.

<input list="animals" type="search" class="search" name="search">
<datalist class="find" id="animals">
 <option>Bird</option>
 <option>Cabbage</option>
 <option>Cat</option>
 <option>Dog</option>
 <option>Eagle</option>
 <option>Egg</option>
 <option>Frog</option>
 <option>Fist</option>
</datalist>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Add an input event listener to the input which hides all li elements whose textContent doesn't include the input's value:

const items = document.querySelectorAll('.find li');

search.addEventListener('input', function(){
  let val = search.value.toLowerCase();
  items.forEach(e => e.style.display = e.textContent.toLowerCase().includes(val) ? 'block' : 'none')
})
<input type="search" class="search" name="search" id="search">
<ul class="find">
 <li>Bird</li>
 <li>Cabbage</li>
 <li>Cat</li>
 <li>Dog</li>
 <li>Eagle</li>
 <li>Egg</li>
 <li>Frog</li>
 <li>Fist</li>
</ul>

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can use startsWith to check wheather the textContent of li starts with the input text or not

const input = document.querySelector("input");
const list = document.querySelectorAll("ul > li");

function showData(inputText) {
  list.forEach(el => {
    const text = el.textContent.toLowerCase();
    if (text.startsWith(inputText.toLowerCase())) el.style.display = "block";
    else el.style.display = "none";
  })
}

input.addEventListener("input", e => {
  showData(e.target.value)
})
<input type="search" class="search" name="search">
<ul class="find">
  <li>Bird</li>
  <li>Cabbage</li>
  <li>Cat</li>
  <li>Dog</li>
  <li>Eagle</li>
  <li>Egg</li>
  <li>Frog</li>
  <li>Fist</li>
</ul>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda