¿Existe una versión que no distinga entre mayúsculas y minúsculas de : contiene el selector jQuery o debería hacer el trabajo manualmente al recorrer todos los elementos y comparar su .text () con mi cadena?
javascript
jquery
jquery-selectors
Palmadita
fuente
fuente
Respuestas:
Lo que terminé haciendo para jQuery 1.2 es:
Esto extenderá jquery para tener un: Contiene un selector que no distingue entre mayúsculas y minúsculas, el selector: contiene permanece sin cambios.
Editar: para jQuery 1.3 (gracias @ user95227) y más tarde necesita
Editar: Aparentemente acceder al DOM directamente usando
en vez de
En la expresión anterior se acelera considerablemente, así que intente bajo su propio riesgo si la velocidad es un problema. (ver la pregunta de @John )
Última edición: para jQuery 1.8 debería ser:
fuente
Para hacerlo opcionalmente insensible a mayúsculas y minúsculas: http://bugs.jquery.com/ticket/278
luego use en
:containsi
lugar de:contains
fuente
A partir de jQuery 1.3, este método está en desuso. Para que esto funcione, debe definirse como una función:
fuente
Si alguien (como yo) le interesa lo que hacer una y m [3] en la media Contiene definición.
CLAVE / LEYENDA: Parámetros puestos a disposición por jQuery para usar en las definiciones del selector:
r = jQuery matriz de elementos que se analizan. (por ejemplo: r.length = Número de elementos)
i = índice del elemento actualmente bajo escrutinio, dentro de la matriz r .
a = elemento actualmente bajo escrutinio. La instrucción del selector debe devolver verdadero para incluirlo en sus resultados coincidentes.
m [2] = nodeName o * que estamos buscando (a la izquierda de los dos puntos).
m [3] = parámetro pasado al: selector (parámetro). Por lo general, un número de índice, como en : nth-of-type (5) , o una cadena, como en : color (azul) .
fuente
En jQuery 1.8 deberás usar
fuente
Una variación que parece funcionar un poco más rápido y que también permite expresiones regulares es:
Esto no solo distingue entre mayúsculas y minúsculas, sino que permite búsquedas potentes como:
$("p:containsCI('\\bup\\b')")
(Coincide "Arriba" o "arriba", pero no "superior", "despertar", etc.)$("p:containsCI('(?:Red|Blue) state')")
(Coincide con "estado rojo" o "estado azul", pero no con "estado activo", etc.)$("p:containsCI('^\\s*Stocks?')")
(Coincide con "stock" o "stock", pero solo al comienzo del párrafo (ignorando cualquier espacio en blanco).)fuente
Puede llegar tarde ... pero,
Prefiero ir por este camino ...
De esta manera, NO altere los '.contains' NATIVOS de jQuery ... Es posible que necesite el predeterminado más tarde ... si lo manipula, es posible que vuelva a stackOverFlow ...
fuente
El código de actualización funciona muy bien en 1.3, pero "contiene" debe estar en minúscula en la primera letra a diferencia del ejemplo anterior.
fuente
:contains
y:Contains
ambos funcionen simultáneamente.Consulte a continuación para usar ": contiene" para buscar texto que ignore su distinción entre mayúsculas y minúsculas de un código HTML,
También puede usar este enlace para encontrar el código de ignorar mayúsculas y minúsculas basado en su versión de jquery, Make jQuery: contiene mayúsculas y minúsculas
fuente
Una versión más rápida que usa expresiones regulares.
fuente
Tuve un problema similar con el siguiente no funciona ...
Esto funciona y sin la necesidad de una extensión
Esto también funciona, pero probablemente cae en la categoría de "bucle manual" ...
fuente
Nueva una variable, le doy el nombre de subString y pongo la cadena que desea buscar en algunos elementos de texto. Luego, usando los elementos de selección del selector Jquery que necesita, como mi ejemplo,
$("elementsYouNeed")
y filtre por.filter()
. En el.filter()
comparará cada elemento en$("elementsYouNeed")
con la función.En la función que uso
.toLowerCase()
para el texto del elemento también subString que puede evitar la condición sensible a mayúsculas y minúsculas y verificar si hay una subString en ella. Después de eso, el.filter()
método construye un nuevo objeto jQuery a partir de un subconjunto de los elementos coincidentes.Ahora puede obtener los elementos de coincidencia en matchObjects y hacer lo que quiera.
fuente