addClass如果存在任何一组条件

时间:2018-03-27 01:29:52

标签: jquery

我有一系列条件,如果它们中的任何一个是真的(存在于DOM中),那么我想将addClass添加到正文中。我想知道是否有比我更简单或更简洁的方式......

if ($('.blog-entry').length > 0) {
    $("body").addClass('stock-plugin');
}
if ($('.contact-form').length > 0) {
    $("body").addClass('stock-plugin');
}

if ($('.fileshare').length > 0) {
    $("body").addClass('stock-plugin');
}

从技术上讲,它可以这样做,但是,我认为我可以做类似的事情来实现同样的目的,除了它只适用于第一个条件:

if($('.blog-entry' || '.contact-form' || '.fileshare').length >0 ){
    $("body").addClass('stock-plugin');   
}

我做错了什么,还是我想努力?

2 个答案:

答案 0 :(得分:5)

显然,这最后一个选择器不起作用。这基本上会选择第一个真值,在这种情况下是'.blog-entry'

但是您可以将jQuery选择器用于多个类,如下所示:

if($('.blog-entry, .contact-form, .fileshare').length > 0 ){
    $("body").addClass('stock-plugin');   
}

您还可以使用.add(),这会将一组新元素添加到上一个选择器中,如下所示:

if($('.blog-entry').add('.contact-form').add('.fileshare').length > 0 ){
    $("body").addClass('stock-plugin');   
}

答案 1 :(得分:1)

jQuery允许您通过用逗号分隔它们来定义多个要查找的选择器:

if($('.blog-entry, .contact-form, .fileshare').length > 0 ){
    $("body").addClass('stock-plugin');   
}