Find element that has either class 1 or class 2

2019-01-23 22:52发布

问题:

I'm trying to find text inside an element whose class is either myClass1 OR myClass2.

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

This works fine but I am unsure if/how I can check for one of 2 classes (my element will only have one class out of these 2 I mentioned).

Thanks for your help!

回答1:

If you want the first one found (but only one) use

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

If you want the first of each kind (two results) then look at the answer provided by @jelbourn.



回答2:

You can separate your selectors with commas to generate a list containing all elements with either class (or with both):

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


回答3:

Enter a comma between the two classes in your selector.

$(".a, .b")

this will match all elements with class "a" OR class "b"

http://api.jquery.com/class-selector/



回答4:

Use an if statement and the jQuery hasClass() function:

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

It would probably look something like this:

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