2009-11-03 1 views
0

Je sais que je peux obtenir le nom de classe d'une cellule de table si je l'identifiant de la cellule, à savoirObtenir la classe d'une cellule sans étiquette d'identification

scr = document.getElementById(cellid); 

classN = scr.className; 

Cependant, je veux obtenir le nom de la classe à partir d'une table avec potentiellement 1000+ cellules. Puis-je faire ceci sans id'ing chaque cellule?

Toute aide serait appréciée.

Merci

Répondre

0

Au lieu de définir un millier de gestionnaires sur les cellules, pourquoi ne pas en définir un seul sur la table?

thetable.onclick= function(e){ 
e= window.event || e; 
var who= e.srcElement || e.target; 
var t= who.tagName; 
if(t== 'TD' || t== 'TH'){ 
    //do whatever to the cell 
} 
//finish up with 
if(e.stopPropagation) e.stopPropagation(); 
else e.cancelBubble= true; 
} 
1

Vous pouvez faire

<script type="text/javascript"> 
    function travel(src) { 
     src.setAttribute("class", "style_notEmptyOrWhateverTheNewStyleIsCalled"); 
    } 
</script> 

<td class='style_empty' onClick='javascript:travel(this)'>no Data</td> 
+0

chaque cellule vide dans ma table ressemblerait à ceci Aucune donnée sur clic Je souhaite modifier la classe de la cellule cliqué – Mick

1

Oui, bien sûr. document.getElementById est juste un raccourci pour tirer un noeud du DOM à travers son ID. Vous êtes libre de trouver ces nœuds par toute autre méthode; c'est-à-dire que l'on trouve le nœud table, puis recurse à travers les enfants qui trouvent chaque td. Vous pourriez aimer getElementsByTagName à cet effet - voir le W3C DOM documentation pour plus à ce sujet.

0

Avez-vous essayé de donner un ID à la table et de l'obtenir ainsi?

<table id='someTableId' class='whatever'>... 

scr = document.getElementById('someTableId'); 

classN = scr.className; 
Questions connexes