2010-11-16 9 views
47

Estoy tratando de encontrar texto dentro de un elemento cuya clase es myClass1 O myClass2.Encontrar elemento que tiene clase 1 o clase 2

var myText = $(this).find('.myClass1:first').text(); 

Esto funciona bien, pero no estoy seguro de si/cómo puedo comprobar si una de las 2 clases (mi elemento sólo tendrá una clase de estos 2 he mencionado).

Gracias por su ayuda!

+2

¿quiere un único resultado (* el primero encontrado *)? o el primero de cada uno (* dos resultados *)? –

Respuesta

63

si desea que la primera que se encuentre (pero sólo uno) utiliza

var myText = $(this).find('.myClass1,.myClass2').eq(0).text(); 

Si desea que el primero de cada especie (dos resultados) luego ver la respuesta proporcionada por @jelbourn.

+2

esto era exactamente lo que estaba buscando, pero tomaré nota de las otras sugerencias también para futuras necesidades :) gracias a todos – ale

24

Se pueden separar los selectores con comas para generar una lista que contiene todos los elementos con cualquiera de las clases (o con ambos):

var elements = $(this).find('.myclass1:first, .myclass2:first'); 
+0

gracias por la sugerencia :) – ale

4

Uso de una sentencia if y la función jQuery hasClass():

http://api.jquery.com/hasClass/

Probablemente se vería algo como esto:

if($(this).hasClass('myClass1') || $(this).hasClass('myClass2')) { 
    myText = $(this).text(); 
} else { 
    myText = null; 
} 
Cuestiones relacionadas