2011-01-12 12 views
8

¿Hay alguna forma - cualquier selector jQuery (no encontré ninguno en http://api.jquery.com/category/selectors/), que se puede utilizar como concordancia exacta?jQuery selector - Coincidir con el contenido de los elementos

:contains() es casi lo que necesito, pero no exactamente. ": contiene" búsquedas en cada elemento de expresiones regulares de esta manera:

.*<query>.* 

Lo que significa que, si tengo que encontrar enlace, que se ve exactamente como esto:

<a href="#">Baxter</a> 

Y utilizar este:

$("a:contains('Baxter')") 

de que coincide también esto, que no quiero para que coincida con:

<a href="#">I'm Peter Baxter, how are you?</a> 

Sé que puedo tomar todos los elementos y comparar su contenido en el ciclo, pero quiero estar seguro, no hay una manera más fácil.

Respuesta

12

No, pero sería trivial para añadir un plugin:

$.expr[':'].contentIs = function(el, idx, meta) { 
    return $(el).text() === meta[3]; 
}; 

A continuación, puede utilizar esto como $('a:contentIs("Baxter")')

+0

eso es una muy pequeña extensión,. Me pregunto por qué esto no está en el núcleo –

+1

@ P.scheit. Es bastante caro, computacionalmente ... Sin embargo, mirando hacia atrás, podría mejorarse con '$ .text ([el])' en lugar de '$ (el). texto() '. – lonesomeday

Cuestiones relacionadas