2012-05-30 5 views
6

En jQuery, estoy buscando un selector similar a :contains, pero tengo que hacer una combinación perfecta con un texto de elemento. ¿Hay alguna?¿Hay algún selector para hacer una combinación perfecta con el texto?

<div>1</div> 
<div>12</div> 
<div>13</div> 
<div>135</div> 

así que si busco text = 1 sólo tendría la primera div

+0

¿Está buscando el innerHTML de un elemento como un div, o el valor de un elemento como un campo de entrada? – j08691

+0

@ j08691: Actualicé mi pregunta – StackOverflower

Respuesta

4

Se puede hacer así:

var str = "whatever"; 

$(".elements").filter(function() { 
    return $(this).text() == str; 
}); 
+0

¿No sería 'apropiado $ (this) .text() == string' ser más apropiado, ya que' innerHTML' mirará la estructura HTML así como el contenido de texto? –

+0

@DavidThomas Sí ... Creo que tienes razón. Para una solución general, es mejor. ¡Gracias! – VisioN

+1

Si bien la respuesta funciona, estoy realmente sorprendido de que esto haya sido aceptado por Jonathan Sampson. =/ –

2
var search = '1'; 
$('div').filter(function() { 
    return $(this).text() == search; 
}).css('background','#f00'); 

DEMO

+0

Creo que esto funciona solo para los elementos DOM, no para los nodos de texto ... – elclanrs

+0

si el texto es '12' y busco' 1' que corresponda a menos que me falta algo. Eso no es lo que estoy buscando, necesito hacer una pareja perfecta. – StackOverflower

+0

@ TimmyO'Tool revisa la demostración, está haciendo lo mismo que usted – thecodeparadox

11

Usted puede hacer uno:

$.extend($.expr[":"], { 
    exactly: function(element, index, details, collection){ 
     return $(element).text() === details[3]; 
    } 
}); 

$("div:exactly(Foo)").addClass("red"); 
$("div:exactly(230)").addClass("blu"); 

violín: http://jsfiddle.net/jonathansampson/YUQLF/

+0

Ooooh ... eso es bastante increíble. –

+0

@Jonathan Sampson: esto parece lo suficientemente bueno. Pensé que me faltaba un builr en la opción. ¡Gracias! – StackOverflower

+1

Por curiosidad, ¿puede señalar la documentación para este enfoque? Es uno que nunca (hasta donde puedo recordar) he visto antes. –

Cuestiones relacionadas