2010-12-29 10 views
23

Suponiendo que tengo esto:jQuery: comprobar si la cadena existe en elemento, volver booleano

<div id="elementId">bla bla bla some text bla bla</div>

Quiero comprobar si este texto div contiene 'un texto', a continuación, volver verdadero, de lo contrario devuelve falso, ¿como hacer eso?

+0

¿Se refiere a si contiene la cadena "algún texto" o solo un poco de texto? – Aerus

+0

@Aerus Hay citas alrededor de las palabras "algún texto" en la pregunta. –

+1

@Jacob ok, estaba confundido ya que tu respuesta marca "bla" en lugar de "algún texto" – Aerus

Respuesta

33
var isContains = $('#elementId').text().indexOf('some text') > -1; 
7

Puede utilizar el selector de :contains() y comprobar el .length para ver si coincide con nada, así:

return $("#elementId:contains('some text')").length > 0; 
+1

@Nick ¿Por qué usar esto cuando puedes usar métodos nativos JS? –

+0

@Jacob - No sigo, ¿desde cuándo son los métodos nativos JS '$()' y '.text()'? ': contains()' llama a la misma cosa debajo. –

+0

@Jacob: algo a tener en cuenta, '.innerText' no funcionará en Firefox :) http://www.quirksmode.org/dom/w3c_html.html#t04 –

2

he utilizado la misma forma del compañero de arriba ...:

if($('#div_searched').text().indexOf('bla') != -1)

Esto devolverá cierto cuando se encuentra la palabra bla en div_searched

0

Creo que esto también debería funcionar.

return $("#elementId:contains('some text')").length ? true : false; 

Debe devolver verdadero si la longitud es mayor que 0, de lo contrario, devolverá falso.

Cuestiones relacionadas