Tengo muchas entradas como esta

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

Desde javascript me gustaría obtener la clase, es diferente para cada entrada.

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

Puede usar jQuery o simplemente javascript ... ¿Alguien sabe cómo hacer esto?

Gracias Matt

1
Matt 15 sep. 2009 a las 04:45

5 respuestas

La mejor respuesta
alert($('#someId').attr('class'));

Si su entrada tiene varias clases, attr('class') devuelve una lista de nombres de clase delimitada por espacios. Puede obtener el último de la siguiente manera:

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

Consulte Attributes/attr

6
karim79 15 sep. 2009 a las 14:21

[editar]

Ah mierda ... no es lo que querías decir ...

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

[/editar]

1
SeanJA 15 sep. 2009 a las 01:25

Utilizando JavaScript simple, si ya tiene una variable / referencia al elemento, puede extraer la clase usando "element.className"

Entonces, para su elemento "someId" arriba:

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

Esto se vuelve un poco más complicado si tiene varias clases asignadas al elemento; tendría que dividir lo que encuentre en la propiedad className por un espacio para separarlos, pero eso es lo básico.

Dicho esto, si tienes la oportunidad, usa jQuery. En general, hace que este tipo de cosas sea más fácil.

1
Weston C 15 sep. 2009 a las 01:11

Un poco más simple usando JavaScript simple:

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

  if(elem)
  {
    alert(elem.className);
  }
}
1
David Andres 15 sep. 2009 a las 00:49

Usarías:

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

Pero tenga en cuenta que si tiene varias clases, devolverá una cadena de todas ellas, por lo que tendrá que usar indexOf o una expresión regular para verificar una clase específica en ese caso.

1
Gabriel Hurley 15 sep. 2009 a las 00:49