2012-06-20 21 views
10

Tengo dos selectores separados por comas;Empareja todas las combinaciones de cualquier clase en jQuery

.class, .foo, .bar 

.lorem, .ipsum, .potato 

Me gustaría poder seleccionar cualquier combinación posible entre estos dos grupos. Por lo tanto, seleccionaría elementos que coincidan con

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

¿Cómo puedo lograr esto de manera efectiva?

Respuesta

15

Seleccionar todos los elementos con cualquier clase desde el primer set, y luego filter los elementos que no tienen una clase desde el otro conjunto:

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

Eso es tan estúpidamente brillante que ni siquiera tiene sentido . Gracias. –

+1

@EmphramStavanger De nada :) Si tiene un número significativamente mayor de elementos que coinciden con el primer selector que con el segundo, también puede beneficiarse al cambiar el orden a: '$ ('. Lorem, .ipsum, .potato') .filter ('. clase, .foo, .bar') ' – Paulpro

Cuestiones relacionadas