2011-12-07 16 views
5

Estamos trabajando en un sistema de filtro, donde se obtiene grupos de opciones, por ejemplo:¿Se pueden agrupar selectores jQuery con (un poco más) lógica avanzada?

color Rojo, Azul, Verde

Precios 0- £ £ 5, £ 6- £ 10, £ 11 +

Hacer Adidas, Nike, Converse

Cada opción es una solo casilla de verificación. Filtramos con la siguiente lógica:

  • o las opciones de un grupo
  • se unen a los que tienen una Y

lo tanto, si yo era comprobar rojo, azul, 0- £ £ 5, Nike y Converse, la lógica sería:

(rojo o azul) y (0-5 £) y (Nike o Converse)

Cada casilla tiene un ID. Deseo construir un selector usando la lógica anterior, pero no estoy seguro de la mejor manera de hacerlo en jQuery. Obviamente AND sólo están adjuntas y OR (o su equivalente) utilizan comandos en estos selectores, pero eso sería romper la lógica sin alguna forma de agrupación, es decir .:

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

Cualquier sugerencia o alternativas?

+1

duplicado posible de [Compuesto JQuery selectores] (http://stackoverflow.com/questions/8071351/compound-jquery-selectors). –

Respuesta

8

Supongamos que usted tiene un montón de artículos con las identidades de clase aplicables:

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

RUP, son equivalentes a las comas, mientras AND requieren encadenamiento:

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

Agradable, gracias :) – LeonardChallis