2010-11-16 8 views
47

J'essaie de trouver du texte dans un élément dont la classe est myClass1 OR myClass2.Rechercher un élément de classe 1 ou de classe 2

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

Cela fonctionne bien, mais je ne suis pas sûr si/comment je peux vérifier pour l'une des deux classes (mon élément n'aura une classe de ces 2 je l'ai mentionné).

Merci pour votre aide!

+2

voulez-vous un seul résultat (* les premiers trouvés *)? ou le premier de chaque (* deux résultats *)? –

Répondre

63

Si vous voulez la première trouvée (mais un seul) utiliser

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

Si vous voulez que le premier de chaque type (deux résultats) puis regardez la réponse fournie par @jelbourn.

+2

c'était exactement ce que j'étais après, mais prendra note des autres suggestions ainsi pour le besoin futur :) merci à tous – ale

24

Vous pouvez séparer vos sélecteurs avec des virgules pour générer une liste contenant tous les éléments avec soit la classe (ou les deux):

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

merci pour la suggestion :) – ale

4

Utilisez une instruction if et la fonction hasClass() jQuery:

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

Il ressemblerait probablement à ceci:

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