Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
Actualice activamente DOM en keyup en una entrada, verifique si el valor de entrada está incluido como un valor dentro de las propiedades de una matriz de objetos

Estoy trabajando con esta API: http://hp-api.herokuapp.com/api/characters , que devuelve una matriz de objetos. Tengo una entrada en mi HTML que tiene un detector de eventos "keyup".

 document.getElementById('search').addEventListener('keyup', filterWizards)

Objetivo: quiero buscar activamente a través de la matriz de objetos devueltos por la API para ver si el nombre o el valor de las propiedades de la casa incluye el texto del elemento de entrada. Luego filtraré el DOM para incluir información basada en lo que se escribe

Ejemplo: si un usuario comenzó a escribir Harry Potter; "Har..." mi programa comenzará a buscar en cada objeto de la matriz de objetos para ver si el objeto incluye "Har" como parte del texto del nombre o propiedad de la casa. O tal vez tenían la intención de buscar en una casa como Gryffindor, cuando comenzaron a escribir Gryffindor, pude filtrar a través de la variedad de objetos y elegir hacer cosas como mostrar los caracteres en mi DOM que cumplen con el criterio.

Datos devueltos desde la API:

 let characters = 'http://hp-api.herokuapp.com/api/characters'; fetch(characters) .then(res => res.json()) // parse response as JSON .then(data => { console.log(data); }) .catch(err => { console.error(`error ${err}`) });

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Suponiendo un campo de entrada con una identificación de "entrada", puede filtrar los resultados para que coincidan con el valor del campo de entrada:

 <input id="input"> <script> fetch(characters) .then(res => res.json()) // parse response as JSON .then(data => { console.log(data); let re = new RegExp(document.getElementById('input').value); let matches = data.filter(function(elmt){ return elmt.name.match(re); }); console.log(matches); }) .catch(err => { console.error(`error ${err}`) }); </script>
about 4 years ago · Juan Pablo Isaza Relatório

0

Esto es lo que haría:

  1. Deshabilite el campo de búsqueda hasta que los datos estén disponibles.
  2. Rellene una lista de datos con las coincidencias de búsqueda que encuentre usando el filter y una comparación datalist toLowerCase() (para har encuentre Harry Potter ).

 const search = document.getElementById('search'), characters = document.getElementById('characters'); let searchList; fetch('http://hp-api.herokuapp.com/api/characters') .then(res => res.json()) // parse response as JSON .then(data => { searchList = data; enableSeach(data); updateDatalist(''); }) .catch(err => { console.error(`error ${err}`) }); function enableSeach(data) { search.disabled = false; search.placeholder = 'Type to search'; search.addEventListener('input', () => { updateDatalist(search.value); }); } function updateDatalist(searchTerm) { characters.innerHTML = ''; searchList.filter(char => char.name.toLowerCase().includes(searchTerm.toLowerCase())).forEach(({name}) => { let option = document.createElement('option'); option.value = name; characters.append(option); }) }
 <input id="search" type="search" placeholder="Fetching data..." disabled list="characters" autocomplete="false"> <datalist id="characters"></datalist>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda