jose
los :contiene() El selector de jQuery le permite hacer coincidir los elementos de búsqueda que contienen una cadena de texto específica. Lo que quiero hacer parece estar relacionado: le estoy proporcionando al usuario un cuadro de texto de “filtro” en el que puede escribir, y tengo un conjunto de elementos de lista.
Quiero que todos los elementos de la lista que no contengan el texto que el usuario ingresó en el cuadro de texto se oculten mientras escriben.
Puedo escuchar el evento keyup en el cuadro de texto, pero no estoy seguro de cómo hacer dos cosas:
- “Invertir” los resultados del selector :contains()–Quiero seleccionar elementos que no combinarlos y ocultarlos.
- Haga que las mayúsculas y minúsculas coincidan.
Se me ha ocurrido que podría usar .filter( función(índice) )pero me pregunto si estoy pensando demasiado en esto: ¿hay alguna manera de lograr esto con los selectores/funciones integrados en jQuery?
brianna
Asumiendo que el texto de su usuario está almacenado en una variable llamada userString:
$(':not(:contains('+ userString +'))').hide();
ocultará todos los elementos que no contengan esa cadena.
Editar: si tiene control sobre los elementos en los elementos de la lista, puede transformar el texto del usuario cuando lo almacena en el userString var.
-
Terminé usando una función de filtro de todos modos, porque necesitaba hacer que la búsqueda no distinguiera entre mayúsculas y minúsculas, y no había una transformación simple de la entrada del usuario que hiciera coincidir el texto de los elementos de la lista. Pero, creo que esta es la mejor respuesta que voy a obtener.
– José
19 de noviembre de 2013 a las 12:05
-
Revisé la discusión sobre la pregunta stackoverflow.com/questions/187537/… y sentí que era más simple usar una función de filtro que probar y modificar :contains para distinguir entre mayúsculas y minúsculas.
– José
19 de noviembre de 2013 a las 12:06
-
Tener una vulnerabilidad de inyección, por ejemplo como entrada:
test)),other...
– e-info128
17 oct 2020 a las 19:27
dinesh kandpal
Digamos que quieres la lista de all <td> that
no contiene la cadena ‘Dinesh’ (suponiendo que Dinesh esté dentro del atributo del nombre)
$('tableId > tbody > tr > td').not("[name*='Dinesh']")
Habrashat
Utilizar este:
$("div:not(:contains('John'))").css("text-decoration", "underline");
-
Agregue su fuente, esta se puede encontrar a través de una búsqueda rápida en Internet.
– Alejandro
29 de octubre de 2015 a las 12:18
Sólo
$(".something:not(:contains('text'))")
obras. Acabo de probar en este hilo:$(".question:not(:contains('filter2134234'))")
– megawac
19 de noviembre de 2013 a las 2:43
Para el segundo punto: “¿Hay un selector jQuery: contiene mayúsculas y minúsculas?”
– Jonathan Lonowski
19 de noviembre de 2013 a las 2:45