使用 "and" 和 "or" 的同位素过滤

Isotop Filtering using "and" and "or"

我有一系列 a 元素需要根据用户选择进行过滤。这些项目有 class 个,例如 class="a b c d visible".visible 当它的图钉在地图上可见时添加。我可以使用

过滤 .visible
$('.search-results').isotope({
    filter: '.visible'
});

但是,我还想添加过滤土地、混合和住宅 classes 的功能。我知道过滤器可以使用 and 过滤,例如:

$('.search-results').isotope({
    filter: '.a.visible'
});

但是,我需要用 or 过滤 "letter" classes,这样如果它们中的任何一个匹配,并且如果它有 visible class 它将会呈现。我试图使用类似的东西:

$('.search-results').isotope({
    filter: '.a.visible, .b.visible'
});

没有成功。如果能帮我解决这个问题,我将不胜感激。

tl;dr: 需要匹配 ((.a) || (.b) || (.c) || (.d) && (.visible))

也许我没有正确理解你的问题,但你的要求似乎得到了很好的支持。看看这个修改后的例子:

http://jsfiddle.net/hu8zdc7o/2/

您示例中的这段代码看起来是正确的:

$('.search-results').isotope({
    filter: '.a.visible, .b.visible'
});

此外,您的 tl;dr 似乎与您的 post 不符,您是这个意思吗?

((.a || .b || .c || .d) && .visible)