你能用更高级的逻辑对jQuery选择器进行分组吗?

时间:2011-12-07 10:29:52

标签: jquery logic selector

我们正在开发一个过滤系统,您可以在其中获得一组选项,例如:

颜色 红色,蓝色,绿色

价格范围 £0-£5,£6-£10,£11 +

阿迪达斯,耐克,匡威

每个选项都是一个复选框。我们使用以下逻辑进行过滤:

  • 来自小组的OR选项
  • 加入AND

所以,如果我要查看Red,Blue,£0-£5,Nike和Converse,那么逻辑就是:

(红色或蓝色)AND(£0-5)AND(Nike OR Converse)

每个复选框都有一个ID。我希望使用上面的逻辑构建一个选择器,但我不确定在jQuery中执行它的最佳方法。显然,ANDs只是附加在一起,ORs(或等效的)在这些选择器中使用命令,但如果没有某种分组方式,那就会破坏逻辑,即:

$('(#red,#blue)(#price0to5)(#nike,#converse)')

有任何建议或替代方案吗?

1 个答案:

答案 0 :(得分:8)

假设您有一堆具有适用类标识的项目:

<div class="red nike underfive"></div>
<div class="blue green converse elevenup"></div>
<div class="blue converse underfive"></div>

OR等同于逗号,而ANDs需要链接:

$(".red,.blue").filter(".underfive").filter(".nike,.converse"); // 1 and 3
$(".green").filter(".underfive"); // empty
$(".blue").filter(".green"); // 2