2011-12-07 18 views
5

Stiamo lavorando su un sistema di filtro, in cui si ottiene gruppi di opzioni, per esempio:Puoi raggruppare selettori jQuery con una logica (leggermente più avanzata)?

colori Rosso, Blu, Verde

Fascia di prezzo £ 0- £ 5, £ 6- £ 10, £ 11 +

Fai Adidas, Nike, Converse

Ogni opzione è un casella di controllo unica. Filtriamo con la seguente logica:

  • o opzioni da un gruppo
  • unirsi a quelli con un AND

Quindi, se mi è stato di verificare rosso, blu, £ 0- £ 5, Nike e Converse, la logica sarebbe:

(rosso o blu) e (£ 0-5) e (Nike o conversare)

Ogni casella ha un ID. Vorrei costruire un selettore usando la logica sopra, ma non sono sicuro del modo migliore di farlo in jQuery. Ovviamente AND sono solo aggiunti e RUP (o equivalente) usano comandi in questi selettori, ma che si rompono la logica senza un modo di raggruppamento, cioè .:

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

Eventuali suggerimenti o alternative?

+1

Eventuali duplicati di [Composto JQuery selettori] (http://stackoverflow.com/questions/8071351/compound-jquery-selectors). –

risposta

8

Supponiamo di avere un gruppo di oggetti con l'identità di classe applicabili:

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

OR sono equivalenti a virgole, mentre AND richiedono il concatenamento:

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

Bello - grazie :) – LeonardChallis