Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果元素有;“1类”;和/或;类别2“;在Jquery.hasClass()函数中_Javascript_Jquery - Fatal编程技术网

Javascript 如果元素有;“1类”;和/或;类别2“;在Jquery.hasClass()函数中

Javascript 如果元素有;“1类”;和/或;类别2“;在Jquery.hasClass()函数中,javascript,jquery,Javascript,Jquery,我想检查一个元素是否有这个类或其他类似的类: if ( $elem.hasClass("foo") || $elem.hasClass("bar") ) { // do something } 我还要检查一个元素是否有两个类: if ( $elem.hasClass("foo") && $elem.hasClass("bar") ) { // do something else } 在hasClass()函数中是否有办法完成这一切?比如: if ( $elem.has

我想检查一个元素是否有这个类或其他类似的类:

if ( $elem.hasClass("foo") || $elem.hasClass("bar") ) {
  // do something
}
我还要检查一个元素是否有两个类:

if ( $elem.hasClass("foo") && $elem.hasClass("bar") ) {
  // do something else
}
hasClass()
函数中是否有办法完成这一切?比如:

if ( $elem.hasClass("foo bar") ) {
  // do something when element has both classes
}
else if ( $elem.hasClass("foo","bar") ) {
  // do something when element has either class
}

你可以做一些不同的事情来实现这一点。但不确定这是否满足您的需求

  • 使用多个选择器可以查看页面上是否存在匹配的元素
  • 使用每个选项执行所需的代码
  • 类似这样的示例:

    $("span.foo, span.bar").each( function() {
      $(".test").html("foo or bar was found");
    });
    
    JS小提琴:

    使用if的第二个解决方案是使用.is()

    例如:

    if ($("span").is(".foo, .bar")) { 
        $(".test").html("foo or bar exists");    
    };
    

    jshiddle:

    严格回答您的问题:不,您不能

    接受单个参数

    正如其他人指出的,您可能会使用
    is()
    ,但这表明性能会受到很大的惩罚


    我建议您继续使用当前的代码。

    您可以尝试使用
    $element.is('.foo,.bar')
    是否可能重复使用一个表达式来表达两个相反的表达式?
    $elem.hasClass(“foo-bar”)
    是指它同时拥有两个类还是其中一个类?如果您不告诉jQuery,它应该如何知道您想要表达什么?然后使用例如
    if($element.is('.foo.bar'){…}或者如果($element.is('.foo.bar')){…}
    so
    is()
    hasClass()更有用
    每当使用多个类或条件时?使用is而不是hasClassUpdated JSFIDLE添加了第二个示例,以使其更具相关性。我只是说,是的,有很多方法可以检查操作预期行为。我认为,
    is()
    的执行情况比
    hasClass()
    差,但从未确认过。所以使用操作符比使用
    is()
    ?是的。我在答案中加了一个测试。