2010-08-10 8 views
32

Je voudrais obtenir la valeur de l'attribut classe pour un élément utilisant JavaScript. Cependant dans cette situation particulière je n'ai pas le luxe de la bibliothèque telle que YUI, jQuery, etc. et ai besoin de coller aux bases. En particulier, je suis en boucle sur une table et je veux vérifier la classe de la cellule.JavaScript obtenant une classe d'éléments sans bibliothèques

J'ai essayé:

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

et

var colClass = el.class; 

Mais ne semble fonctionner. Dans l'exemple ci-dessus, el est défini à partir du tableau de cellules d'une table, tel que var el = document.getElementById('myTable').rows[y].cells[y];

Répondre

57

Peut-être que vous devriez essayer cette

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

Cette ligne que vous avez publié devrait fonctionner:

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

Pouvez-vous poster quelle erreur que vous obtenez dans le navigateur? Assurez-vous que el n'est pas nul.

Si vous n'obtiendrez que l'on à travailler, the attribute of the object is className, not class:

var colClass = el.className; 
+1

getAttribute ('classe') renvoie null. Pour le même élément, .className a renvoyé la classe. – Zugwalt

+0

@Zugwalt - Il a été longtemps depuis la poste. Savez-vous pourquoi getAttribute peut échouer? – HelloWorldNoMore

+0

@HelloWorldNoMore Son possible cela a été vu dans le navigateur plus ancien comme IE6 ou IE7 – Zugwalt

0

Rappelez-vous:

Si vous obtenez une erreur et className ne fonctionne pas, cela peut être dû au fait que votre élément est un objet jQuery.

works not on jquery

Dans l'image ci-dessus vous voyez que je CANOT utilise className sur un objet jQuery

Questions connexes