【问题标题】:Check if a selector have a certain set of classes检查选择器是否有一组特定的类
【发布时间】:2011-02-09 17:43:36
【问题描述】:

我正在尝试检查选择器是否有特定的类集。

.hasClass() 只能检查选择器是否有一个类。 .is() 选择器可以查找多个类,但如果选择器至少有一个类,则返回 true。

但我不想实现一种方法来检查选择器是否同时具有这两个类,并且只有当它同时具有这两个类时才会执行操作。

任何指针?

【问题讨论】:

    标签: jquery class jquery-selectors conditional


    【解决方案1】:

    你可以简单的列出类名:

    .foo.bar.bar
    

    此选择器匹配具有所有类 foobarbaz 的任何元素。

    【讨论】:

    • 这与他列出的用例有何关系?例如,想要通过hasClassis 等查询实例/列表? (如果他试图获取一个列表......)或者你可以将它传递给hasClass或其他东西吗?
    • @T.J.克劳德:.is(".foo.bar.bar")
    【解决方案2】:

    我认为$.is('.class1.class2') 会做你想做的事。例如,$('#foo').is('.a.b') 对以下 div 返回 true,但 $('#foo').is('.a.c') 将返回 false:

    <div id="foo" class="a b"></div>
    

    这不是你要找的吗?

    【讨论】:

      【解决方案3】:

      is() 函数应该适合你。

      • 如果你有一个元素并且你写 is(".foo") 那么它将返回 true 如果 foo 存在。
      • 如果你写 is(".foo.bar") 那么它 如果 foo AND bar 是,将返回 true 存在。
      • 如果你写 is(".foo,.bar") 那么它 如果 foo OR bar 是,将返回 true 存在。

      【讨论】:

        【解决方案4】:

        你可以这样做:

        var $blah = $("blah");
        if($blah.hasClass("test") && $blah.hasClass("othertest")){
         // something
        }
        

        ... 或使用选择器

        $(".test.othertest");

        【讨论】:

        • 好的,所以也许我必须举例说明: function checkFilter() { $('.post').each(function(){ if ($(this).hasClass('photography') && $(this).hasClass('brindfors')) { $(this).show(); } else { $(this).hide(); } });但在我的情况下,问题是我要检查的类(例如摄影和 brindfors)在一个正在变化的数组中......所以如果我可以使用 hasClass(array) 那将是超级的。根据这个例子有什么建议吗?
        • @emilolsson 请用这些信息编辑你的问题,在 cmets 中不是很可读^^
        【解决方案5】:

        $('div.class1.class2') 不做你想做的事吗(即,找到任何具有 class1 和 class2 的 div)

        【讨论】:

        • @T.J. Crowder:它完全消除了 hasClass & is 的使用。 OP 可以首先使用正确的选择器,而不是例如/获取所有 div 然后检查 class1 和 class2。只需在第一个实例中获取所有具有 class1 和 2 的 div。
        • 我们以不同的方式阅读问题。我读到他已经有了这个东西(可能是其他一些操作的结果),现在想测试它的类组合,不是他想去拿它。
        • 我在每个循环中,需要检查 $(this) 选择器是否具有存储在数组中的类..
        猜你喜欢
        • 2018-07-15
        • 2011-11-13
        • 2013-05-20
        • 1970-01-01
        • 2018-12-12
        • 1970-01-01
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        相关资源
        最近更新 更多