如果存在一组条件,则addClass



我有一系列条件,如果其中任何一个是真实的(存在于DOM中(,那么我想在身体上添加阶级。我想知道比我拥有的更简单或更简洁的方法...

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');   
}

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

显然,这个最后一个选择器将不起作用。这基本上是选择第一个真实值,在这种情况下,'.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');   
}

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

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

最新更新