2012-06-20 4 views
10

Ho due selettori separati da virgola;Abbina tutte le combinazioni di qualsiasi classe in jQuery

.class, .foo, .bar 

.lorem, .ipsum, .potato 

Mi piacerebbe essere in grado di selezionare qualsiasi combinazione possibile tra questi due gruppi. Quindi selezionerebbe gli elementi corrispondenti a

.class.lorem 
.class.ipsum 
.class.potato 
.foo.lorem 
.foo.ipsum 
.foo.potato 
.bar.lorem 
.bar.ipsum 
.bar.potato 

Come posso ottenerlo efficacemente?

risposta

15

Seleziona tutti gli elementi con qualsiasi classe dal primo set, e poi filter gli elementi che non hanno una classe dall'altra set:

$('.class, .foo, .bar').filter('.lorem, .ipsum, .potato') 
+0

che è così stupidamente brillante che non ha nemmeno senso . Grazie. –

+1

@EmphramStavanger Prego :) Se si dispone di un numero significativamente maggiore di elementi corrispondenti al primo selettore rispetto al secondo, si può anche trarre vantaggio dal passaggio dell'ordine a: '$ ('. Lorem, .ipsum, .potato') .filter ('. class, .foo, .bar') ' – Paulpro