2012-04-26 9 views
12
$('.test').css('background','red'); 

<div id="example">Some text</div> 

¿Cómo puedo .addClass('test') si #example contiene la palabra "texto"?Si el elemento contiene cierto texto

+0

¿Qué has intentado? Francamente, esto parece un uso muy, muy directo de la API de jQuery. –

+0

** 1. ** Tome la pregunta pequeña, agregue "jquery" antes. "jquery if element contiene cierto texto" ** 2. ** Vaya a google y ejecute la búsqueda. – Joonas

Respuesta

16

sólo tiene que utilizar :contains pseudoclass

$('#example:contains("text")').addClass('test'); 

esto añadirá la clase a #example si contiene 'texto'

+0

Perfecto, gracias! – UserIsCorrupt

6

Puede utilizar $("#example") para obtener un envoltorio de jQuery para el elemento, a continuación, utilizar text() para obtener su texto, y utilizar String#indexOf, por ejemplo:

var ex = $("#example"); 
if (ex.text().indexOf("text") !== -1) { 
    ex.addClass("test"); 
} 

también puede utilizar :contains("text") en el selector como F. Calderan shows, aunque tenga en cuenta que cuando utiliza pseudo-selectores no estándar como ese, jQuery no puede usar elementos incorporados del navegador subyacente para encontrar elementos, por lo que puede ser más lento. Lo anterior permitirá a jQuery usar document.getElementById. Sin embargo, solo hay unas pocas situaciones donde la velocidad realmente importa.

1

tratar el siguiente código

$('#example:contains("text")').addClass('test'); 

un vistazo here de ejemplos y explicaciones de la :contains selector de

+0

Creo que la prueba dentro contiene el texto. – Zafer

+0

@Zafer Typo, ¡gracias, ordenados! :) –

Cuestiones relacionadas