GetElementsByClassName

Résolu
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015 - 11 janv. 2012 à 18:38
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015 - 12 janv. 2012 à 10:54
Bonjour,

je me mets doucement au javascript et j'ai besoin d'avoir par dessus mon image une div transparente contenant du texte et centrée en hauteur.
J'essaye de faire un script pour ça mais ça ne fonctionne pas malheureusement.

Mon html:





QUE FAIRE
POUR Y ARRIVER

SPECTACLE TOUT PUBLIC







Cette div est répétée en boucle jusqu'à 8 fois.

Mon Javascript :

<script type="text/javascript">
nbElements=document.getElementsByClassName("texte").length;
alert(nbElements);
for(i=0;i<nbElements;i++){
alert(getElementsByClassName("texte")[i].offsetHeight);
getElementsByClassName("texte")[i].style.top = (145-getElementsByClassName("texte")[i].offsetHeight)/2+'px';
}
</script>


Le premier alert me retourne le bon nombre d'éléments.
Le deuxième n'affiche rien.
J'ai une erreur dans Firebug : getElementsByClassName is not defined

si vous pouviez m'aider là-dessus, ça serait très sympa :)

Merci d'avance!


--------------------------------------------------------
- dev web - DA print / web - Illustratrice

2 réponses

projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015
12 janv. 2012 à 10:54
merci pour ta réponse, j'ai réussi en fait :

<script type="text/javascript">
tblElements=document.getElementsByClassName("texte");
//alert(tblElements.length);
for(i=0;i<tblElements.length;i++){
tblElements[i].style.top = (145-tblElements[i].offsetHeight)/2+'px';
}
</script>


--------------------------------------------------------
- dev web - DA print / web - Illustratrice
3
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
11 janv. 2012 à 22:46
bonjour a la place de

alert(getElementsByClassName("texte")[i].offsetHeight);



se doit etre plutot ca

alert(nbElements[i].offsetHeight);
0
Rejoignez-nous