Matt
Matt

Reputation: 5595

How can I retrieve the class of an element using jQuery/javascript?

I have a bunch of inputs like this

<input id="someId" type="button" class="SomeClass" onclick="determineClass(this.id, event)" />

From javascript I would like to get the class, it's different for each input.

function determineClass(id, e) {
    var elementClass = //Somehow get the class here
}

It can be using jQuery or just plain javascript... Does anyone know how to do this?

Thanks, Matt

Upvotes: 1

Views: 3126

Answers (5)

karim79
karim79

Reputation: 342635

alert($('#someId').attr('class'));

If your input has multiple classes, attr('class') returns a space-delimited list of classnames. You can get the last one as follows:

alert($('#someId').attr('class').split(' ').slice(-1));

See Attributes/attr

Upvotes: 6

SeanJA
SeanJA

Reputation: 10344

[edit]

Ah crap... not what you meant...

$('#id').attr('class');

[/edit]

Upvotes: 1

Weston C
Weston C

Reputation: 3632

Using plain ol' javascript, if you already have a variable/reference to the element, you can pull the class out using "element.className"

So, for your element "someId" above:

element = document.getElementById('someId');
if(element) elementClass = element.className

This gets a little more complicated if you have multiple classes assigned to the element -- you'd have to split what you find in the className property by a space in order to separate them -- but that's the basics.

That said, if you've got the chance, use jQuery. It generally makes this kind of thing easier.

Upvotes: 1

David Andres
David Andres

Reputation: 31781

A bit simpler using plain ol' JavaScript:

function determineClass(id, e)
{
  var elem = document.getElementById(id);

  if(elem)
  {
    alert(elem.className);
  }
}

Upvotes: 1

Gabriel Hurley
Gabriel Hurley

Reputation: 40042

You would use:

$('#someId').attr('class')

But beware that if it has multiple classes it will return a string of all of them, so you'll have to use indexOf or a regex to check for a specific class in that case.

Upvotes: 1

Related Questions