views:

217

answers:

4

For whatever reason I have these classes called .main_sub1, .main_sub2 etc. Never mind why I can't have .main .sub.

Is there a way with JQuery, sort of in the way it is possible to do with attributes, to get the classes containing main?

A: 

In this instance, I would just treat the class attribute in the same way as you do a standard attribute.

$("[class*=main]")
James Wiseman
+7  A: 

Using $("[class^=main") will select all elements whose classname starts with 'main'. Take a look at http://api.jquery.com/category/selectors/, there are a lot of other variations you can use, for example:

  • [class*=main] will select elements whose classname contains 'main'
  • [class~=main] will select elements whose classname has the word 'main' (delimited with spaces)
  • [class$=main] will select elements whose classname ends in 'main'

Etc.

Tatu Ulmanen
Ah, of course class is an attribute in itself. Thanks!
David Andersson
A: 

Yes, you can use an attribute selector to match certain values for the class attribute.

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

JQuery has support for wildcards.

Cyril Gupta
What do you mean by wildcards?
David Andersson