2010-08-10 10 views
32

Me gustaría obtener el valor del atributo clase para un elemento que utiliza JavaScript. Sin embargo, en esta situación particular, no tengo el lujo de una biblioteca como YUI, jQuery, etc. y necesito apegarme a lo básico.JavaScript obteniendo una clase de elementos sin ninguna biblioteca

Específicamente, estoy dando vueltas sobre una tabla y quiero verificar la clase de la celda.

me trataron:

var colClass = el.getAttribute('class');

y

var colClass = el.class; 

Pero tampoco parece estar funcionando. En el ejemplo anterior, el se establece desde el conjunto de celdas de una tabla, como var el = document.getElementById('myTable').rows[y].cells[y];

Respuesta

57

tal vez debería probar este

var colClass = el.className 
2

className?

Element.className

<html> 
<body id="myid" class="mystyle"> 

<script> 
var x=document.getElementsByTagName('body')[0]; 
document.write("Body CSS class: " + x.className); 
document.write("<br>"); 
document.write("An alternate way: "); 
document.write(document.getElementById('myid').className); 
</script> 

</body> 
</html> 
12

Esta línea que usted envió debería funcionar:

var colClass = el.getAttribute('class'); 

Podría publicar lo error que se obtiene en el navegador? Asegúrate de que el no sea nulo.

Si usted no conseguirá que uno a trabajar, the attribute of the object is className, not class:

var colClass = el.className; 
+1

getAttribute ('clase') devuelve un valor nulo. Para el mismo elemento, .className devolvió la clase. – Zugwalt

+0

@Zugwalt - Ha pasado mucho tiempo desde la publicación. ¿Sabes por qué getAttribute puede fallar? – HelloWorldNoMore

+0

@HelloWorldNoMore Es posible que esto se haya visto en un navegador más antiguo como IE6 o IE7 – Zugwalt

0

Recuerde:

Si se produce un error y className no funciona, esto puede deberse a que tu elemento es un objeto jQuery.

works not on jquery

En la imagen de arriba ves que yo utilizo canot className en un objeto jQuery

Cuestiones relacionadas