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

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

Stack Overflow用户
提问于 2012-05-12 05:55:29
回答 10查看 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

回答 10

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用户

发布于 2012-05-12 06:11:29

为了好玩,我编写了一个小的jQuery附加方法,它将检查多个类名中的任何一个:

代码语言:javascript
复制
$.fn.hasAnyClass = function() {
    for (var i = 0; i < arguments.length; i++) {
        if (this.hasClass(arguments[i])) {
            return true;
        }
    }
    return false;
}

然后,在您的示例中,您可以使用以下代码:

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

// do stuff 

}

您可以根据需要传递任意多个类名。

下面是一个增强版本,它还允许您传递由空格分隔的多个类名:

代码语言:javascript
复制
$.fn.hasAnyClass = function() {
    for (var i = 0; i < arguments.length; i++) {
        var classes = arguments[i].split(" ");
        for (var j = 0; j < classes.length; j++) {
            if (this.hasClass(classes[j])) {
                return true;
            }
        }
    }
    return false;
}

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

工作演示:http://jsfiddle.net/jfriend00/uvtSA/

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

https://stackoverflow.com/questions/10559153

复制
相关文章

相似问题

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