2010-02-08 21 views
62

Por alguna razón tengo estas clases llamadas .main_sub1, .main_sub2 etc. No importa por qué no puedo tener .main .sub.¿Elemento o clase selector LIKE para jQuery?

¿Hay alguna manera con jQuery, algo así como es posible hacer con los atributos, para obtener las clases que contienen main?

+1

Lo dijo usted mismo; clase es un atributo. –

Respuesta

154

Usando $("[class^=main]") seleccionará todos los elementos cuyo nombre de clase comienza con 'principal'. Echar un vistazo a jQuery docs about selectors, hay muchas otras variaciones que pueden usarse, por ejemplo:

  • [class*=main] seleccionarán elementos cuyo nombre de clase contiene 'principal'
  • [class~=main] seleccionarán elementos cuyo nombre de clase tiene la palabra 'principal' (delimitado con espacios)
  • [class$=main] seleccionarán elementos cuya classname termina en 'principal'
+0

Ah, por supuesto, la clase es un atributo en sí mismo. ¡Gracias! –

+0

¿funcionará esto cuando se haya agregado la clase al elemento mediante el método 'addClass' y no como un atributo? – ZX12R

+0

@ ZX12R sí, a partir de [jQuery versión 1.12/2.2] (https://api.jquery.com/addclass) – dlatikay

3

En este caso, trataría el atributo de clase de la misma forma que lo haría con un atributo estándar.

$("[class*=main]") 
13

Sí, puede usar un selector de atributos para que coincida con ciertos valores para el atributo class.

$('[class^=main]') // class begins with "main" 
$('[class*=main]') // class contains "main" anywhere within it