Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JQuery .hasClass for multiple values in an if statement

I have a simple if statement as such:

if ($('html').hasClass('m320')) {  // do stuff   } 

This works as expected. However, I want to add more classes to the if statement to check if any of the classes are present in the <html> tag. I need it so it's not all of them but just the presence of at least one class but it can be more.

My use case is that I have classes (e.g. m320, m768) added for various viewport widths so I only want to execute certain Jquery if it's a specific width (class).

Here is what i have tried so far:

1.

if ($('html').hasClass('m320', 'm768')) {  // do stuff   } 

2.

if ($('html').hasClass('m320')) || ($('html').hasClass('m768')) {   // do stuff   } 

3.

 if ($('html').hasClass(['m320', 'm768'])) {   // do stuff       } 

None of these seem to work though. Not sure what I am doing wrong but most likely my syntax or structure.

like image 613
Danny Englander Avatar asked May 11 '12 21:05

Danny Englander


2 Answers

You could use is() instead of hasClass():

if ($('html').is('.m320, .m768')) { ... } 
like image 142
elclanrs Avatar answered Sep 17 '22 10:09

elclanrs


You just had some messed up parentheses in your 2nd attempt.

var $html = $("html");  if ($html.hasClass('m320') || $html.hasClass('m768')) {    // do stuff   } 
like image 24
James Montagne Avatar answered Sep 19 '22 10:09

James Montagne