首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >if语句中多个值的JQuery .hasClass

if语句中多个值的JQuery .hasClass
EN

Stack Overflow用户
提问于 2012-05-12 05:55:29
回答 9查看 107.9K关注 0票数 84

我有一个简单的if语句:

代码语言:javascript
复制
if ($('html').hasClass('m320')) {

// do stuff 

}

这与预期的一样。但是,我想向if statement中添加更多类,以检查<html>标记中是否存在任何类。我需要它,所以它不是所有的类,而是至少一个类的存在,但它可以更多。

我的用例是,我为不同的视窗宽度添加了类(例如m320m768),所以我只想在特定宽度(类)的情况下执行特定的Jquery。

这是我到目前为止尝试过的:

1.

代码语言:javascript
复制
if ($('html').hasClass('m320', 'm768')) {

// do stuff 

}

2.

代码语言:javascript
复制
if ($('html').hasClass('m320')) || ($('html').hasClass('m768')) {

 // do stuff 

}

3.

代码语言:javascript
复制
 if ($('html').hasClass(['m320', 'm768'])) {

 // do stuff 

    }

然而,这些似乎都不起作用。不确定我做错了什么,但很可能是我的语法或结构。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-05-12 05:58:00

你只是在第二次尝试的时候把括号弄乱了。

代码语言:javascript
复制
var $html = $("html");

if ($html.hasClass('m320') || $html.hasClass('m768')) {

  // do stuff 

}
票数 75
EN

Stack Overflow用户

发布于 2012-05-12 05:58:07

您可以使用is()而不是hasClass()

代码语言:javascript
复制
if ($('html').is('.m320, .m768')) { ... }
票数 170
EN

Stack Overflow用户

发布于 2013-05-31 21:50:30

这可能是另一种解决方案:

代码语言:javascript
复制
if ($('html').attr('class').match(/m320|m768/)) {  
  // do stuff   
}  

根据jsperf.com的说法,它也相当快。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10559153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档