2011-12-07 12 views
5

Pracujemy nad systemem filtracyjnym, gdzie można uzyskać grupy opcji, na przykład:Czy można pogrupować selektory jQuery z (nieco więcej) zaawansowaną logiką?

Colour czerwony, niebieski, zielony

Przedział cenowy £ 0- 5 £, £ 6- £ 10, £ 11 +

Bądź Adidas, Nike, Converse

Każda opcja jest pojedyncze pole wyboru. Filtrujemy z następującą logiką:

  • lub opcje z grupy
  • przyłączyć do tych z I

Tak więc, jeśli miałem sprawdzić czerwony, niebieski, £ ​​0- £ 5, Nike i Converse, logika będzie:

(czerwony lub niebieski) i (£ 0-5) i (OR Nike Converse)

Każde pole ma identyfikator. Chciałbym zbudować selektor za pomocą powyższej logiki, ale nie jestem pewien, jak najlepiej to zrobić w jQuery. Oczywiście łączeniu są po prostu dołączane i OR (lub równowartość) użyć polecenia w tych selektorów, ale to by przełamać logikę bez jakiś sposób grupowania, tj .:

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

Wszelkie sugestie lub alternatywy?

+1

Możliwy duplikat [Związek JQuery selektory] (http://stackoverflow.com/questions/8071351/compound-jquery-selectors). –

Odpowiedz

8

Załóżmy, że masz kilka elementów z obowiązującymi tożsamości Klasa:

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

RNO są równoważne przecinkami, a łączeniu wymagają łańcuchowym:

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

Fajna - dzięki :) – LeonardChallis