¿Alguien puede decirme si es posible encontrar un elemento en función de su contenido en lugar de un id o clase ?
Estoy tratando de encontrar elementos que no tengan clases o identificadores distintos. (Entonces necesito encontrar el elemento primario de ese elemento).
Respuestas:
Puede usar el
:contains
selector para obtener elementos en función de su contenido.Demo aquí
fuente
.filter
en su lugar.$('div').filter(function(){ return $(this).text().toLowerCase() === 'test';})
$('div:contains( "test" )').css('background-color', 'red');
En la documentación de jQuery dice:
Por lo tanto, no basta con usar el
:contains()
selector , también debe verificar si el texto que busca es el contenido directo del elemento al que se dirige, algo así:fuente
<li>Hello <a href='#'>World</a>, How Are You.
. Aquí, siHow
se está buscando, la condición fallará, creo.Amigos, sé que esto es viejo, pero bueno, tengo esta solución que creo que funciona mejor que todos. En primer lugar, supera la sensibilidad de mayúsculas y minúsculas que jquery: contiene () se envía con:
Espero que alguien en el futuro cercano lo encuentre útil.
fuente
La respuesta de Rocket no funciona.
Simplemente modifiqué su DEMO aquí y puedes ver que el DOM raíz está seleccionado.
agregue el selector " : last " en el código para arreglar esto.
fuente
La mejor manera en mi opinión.
fuente
Sí, use el
contains
selector jQuery .fuente
El siguiente jQuery selecciona los nodos div que contienen texto pero no tienen hijos, que son los nodos hoja del árbol DOM.
fuente