我有一系列条件,如果它们中的任何一个是真的(存在于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');
}
我做错了什么,还是我想努力?
答案 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');
}