Problème de getElementById()

Eléphanteau du PHP | 40 Messages

04 mai 2007, 09:23

Bonjour,

voila, j'ai une page HTML comme ceci:

Code : Tout sélectionner

<div class="image" id="image0"> </div>
et ensuite dans mon code javascript, lorsque je fait

Code : Tout sélectionner

var image = document.getElementById('image0');
je récupere un null, quelqu'un sait d'ou ça peut venir? le getElementById marche avec les div non??^^

Voila, merci :D

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 mai 2007, 12:23

As tu mis ta ligne de JS avant ou après avoir mis la balise div id="tonid" ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2007, 12:26

Lorsque ton code javascript est appellé, ton div a-t-il déjà été défini ou bien arrive-t-il ensuite dans le code ?
<script language="javascript">
alert (document.getElementById('image0')); // renvoi null ou undefined
</script> 

<div class="image" id="image0"> </div> 

<script language="javascript">
alert (document.getElementById('image0')); // renvoi [object]
</script> 
Edit : humpf.. grilled :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 40 Messages

04 mai 2007, 14:29

Ah ouai c'est ça je savais pas qu'il fallait que la balise soit avant, ba merci alors lol

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2007, 14:36

La balise n'a pas nécessairement besoin d'être "avant", il faut juste que le navigateur l'ai trouvé au moment où il a besoin de l'utiliser :
<script language="javascript"> 
function maFonction() {
  alert (document.getElementById('image0'));
}
</script>  

<div class="image" id="image0"> </div>  

<script language="javascript"> 
  maFonction(); // affiche [object] 
</script> 
le getElementById est spécifié avant la balise, mais comme il n'est exécuté par l'appel à la fonction qu'après la déclaration du div, il sera bien défini :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...