2010-11-16 14 views
47

Próbuję znaleźć tekst wewnątrz elementu, którego klasa to albo myClass1, albo myClass2.Znajdź element, który ma klasę 1 lub klasę 2

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

Działa to dobrze, ale jestem pewien, czy/jak mogę sprawdzić na jednym z 2 klas (mój element będzie mieć tylko jedną klasę z owych 2 wspominałem).

Dzięki za pomoc!

+2

Czy chcesz uzyskać tylko jeden wynik (* pierwszy znaleziony *)? lub pierwszy z każdego (* dwa wyniki *)? –

Odpowiedz

63

Jeśli chcesz pierwszy znaleziony (ale tylko jeden) używać

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

Jeśli chcesz pierwszy z każdego rodzaju (dwa wyniki) następnie spójrz na odpowiedź udzieloną przez @jelbourn.

+2

to było dokładnie to, czego byłem, ale uwzględnię inne sugestie na przyszłość :) dziękuję wszystkim – ale

24

można oddzielić selektorów przecinkami wygenerować listę zawierającą wszystkie elementy z obu klas (lub obu):

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

dziękuję za sugestię :) – ale

4

Zastosowanie if i jQuery hasClass() funkcja:

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

Prawdopodobnie wyglądałoby to tak:

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