Find element that has either class 1 or class 2

2019-01-23 22:00发布

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!

4条回答
Ridiculous、
2楼-- · 2019-01-23 22:41

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/

查看更多
Luminary・发光体
3楼-- · 2019-01-23 22:46

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');
查看更多
我想做一个坏孩纸
4楼-- · 2019-01-23 22:54

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;
}
查看更多
对你真心纯属浪费
5楼-- · 2019-01-23 23:02

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.

查看更多
登录 后发表回答