Estoy tratando de implementar un motor de búsqueda muy básico. Itero a través de una matriz de objetos, verifico si mi término de búsqueda coincide con algunos atributos y, si es así, inserto cada objeto coincidente en una matriz. Ahora, en el resto de mi código lo tengo para que cada objeto esté representado por un elemento, y cada elemento tiene una casilla de verificación. Cada casilla de verificación tiene una ID que coincide con la ID de su objeto. Entonces.... cuando ejecuto la función de búsqueda, tomo las coincidencias, las hago corresponder con una casilla de verificación a través de las ID y luego quiero ocultar los elementos que no coinciden.
El problema es que oculta TODOS los elementos, en lugar de solo los ID que no coinciden. Además, funciona cuando quiero manipular las coincidencias (por ejemplo, rodearlas con un borde blanco).
function search() { var results = []; userData.forEach(task => { if (task.value.toLowerCase().includes(searchBar.value.toLowerCase()) || task.note.toLowerCase().includes(searchBar.value.toLowerCase())) { results.push(task.id); } }) const checkboxes = document.querySelectorAll(".checkbox"); checkboxes.forEach(checkbox => { if (!results.includes(checkbox.id)) { checkbox.parentElement.style.display = "none"; } }) } }