He usado el siguiente script para buscar en una tabla y mostrar los resultados que coinciden con la entrada del usuario. Si escribe una 'K' mayúscula y el resultado deseado comienza con una 'k' minúscula, el resultado simplemente no se mostrará porque no coincide exactamente con la entrada del usuario. ¿Cómo selecciono el .value() insensible a mayúsculas y minúsculas?
$("#search_input").keyup(function() { var value = this.value; $("#table").find(".table_row").each(function(index) { if (!index) return; var id = $(this).find(".table_cell").first().text(); $(this).toggle(id.indexOf(value) !== -1); }); });Parte de un script que diste, compara las cadenas tal como están. Es mejor poner en minúsculas la entrada del usuario y la identificación de texto de la celda de la tabla para comparar ambos resultados y luego alternar lo que necesita.
$("#content").keyup(function() { var value = this.value.toLowerCase(); $("#table").find(".table_row").each(function(index) { if (!index) return; var id = $(this).find(".table_cell").first().text(); if (id.toLowerCase().indexOf(value) !== -1) { $(this).toggle(); } }); });Y una cosa más que añadir. Solo por curiosidad, ¿por qué estás pasando el resultado de la comparación de cadenas a un conmutador? Alterne esperar dos parámetros opcionales: duración y función de devolución de llamada completa. En caso de que no necesite acelerar o hacer algo después, simplemente cámbielo como está.
Sin parámetros, el método .toggle() simplemente alterna la visibilidad de los elementos
Fue suficiente para mí simplemente usar toLowerCase() tanto para los elementos de búsqueda como para la entrada del usuario, para comparar los valores en minúsculas de ambos.
$("#search_input").keyup(function() { var value = this.value.toLowerCase(); $("#table").find(".table_row").each(function(index) { if (!index) return; var id = $(this).find(".column-namelist").first().text(); $(this).toggle(id.toLowerCase().indexOf(value) !== -1); }); });