getElementById qui plante tout !

getElementById qui plante tout ! - HTML/CSS - Programmation

Marsh Posté le 03-01-2007 à 10:23:54    

Bonjour, j'avais fais un script assez complexe mais qui fonctionnait bien pour faire des sélection de périodes de dates sur un calendrier, ensuite j'ai fais une petite modif dessus et ça fonctionnait toujours, mais depuis qu'on a changé d'année (je me doute que le probleme ne vient pas de là mais c'est pour dire que ça a marché pendant un certain temps !!!) j'ai cette erreur (dans l'inspecteur Firefox):
 
Erreur : document.getElementById(AnneeMoisJours) has no properties
 
Le bout de code qui merdouille est la condition suivante :
 
if(( document.getElementById(AnneeMoisJours).style.color == "#ff4444" ) || ( document.getElementById(AnneeMoisJours).style.color == "rgb(255, 68, 68)" ))
 
Quelqu'un aurait-il une idée sur le sujet ?
Y a t il un moyen de savoir si le getElementById est "défini" ou pas ... genre isset() en PHP ?
Merci d'avance ;)

Reply

Marsh Posté le 03-01-2007 à 10:23:54   

Reply

Marsh Posté le 03-01-2007 à 10:29:23    

C'est quoi le sens de ton bout de code ? Il ne sert pas à grand chose...

Reply

Marsh Posté le 03-01-2007 à 10:31:52    

y'a quoi dans la variable AnneeMoisJour? Parce qu'apparement il trouve pas l'id correspondant dans ton document ...
 
Bref pour faire ton test le plus simpe est souvent de faire:

Code :
  1. if ( node = document.getElementById(AnneeMoisJour) ){
  2.   ...
  3. }

Reply

Marsh Posté le 03-01-2007 à 10:38:55    

AnneeMoisJour c'est une date type mysql, du style 20070103
t sûr que c bien "node =" et pas "node ==" ?
 
Alors justement quelques explications seront les bienvenues je pense :
le principe est de parcourir tout le calendrier affiché et de détecter les dates qui sont d'une certaine couleur (d'où le style.color == "#ff4444" ) pour repérer celles qui sont effectivement sélectionnées et les sauvegarder
ce qui est bizarre c'est qu'on dirait qu'il va chercher un id hors de ceux qui existe (d'où le has no properties ... je pense) alors qu'avant le principe était le même et ça fonctionnait !

Message cité 1 fois
Message édité par KahL le 03-01-2007 à 10:42:46
Reply

Marsh Posté le 03-01-2007 à 10:49:59    

Citation :

C'est quoi le sens de ton bout de code ? Il ne sert pas à grand chose...


c'est le test pour savoir si la cette date est sélectionnée ou pas, car quand une date est sélectionnée, elle change de couleur
là bien entendu il manque le code après la condition mais je l'ai pas mis parce que c'est pas ça qui plante, c'est la condition
voila le bloc :

Code :
  1. if(( document.getElementById(AnneeMoisJours).style.color == "#ff4444" ) || ( document.getElementById(AnneeMoisJours).style.color == "rgb(255, 68, 68)" ))
  2. {
  3. JourValid += (AnneeMoisJours + 100 + "-" );
  4. }

Reply

Marsh Posté le 03-01-2007 à 10:55:06    

KahL a écrit :

AnneeMoisJour c'est une date type mysql, du style 20070103
t sûr que c bien "node =" et pas "node ==" ?


oui je suis sur du "node =", l'affectation te retourne true or false.
 

KahL a écrit :

Alors justement quelques explications seront les bienvenues je pense :
le principe est de parcourir tout le calendrier affiché et de détecter les dates qui sont d'une certaine couleur (d'où le style.color == "#ff4444" ) pour repérer celles qui sont effectivement sélectionnées et les sauvegarder
ce qui est bizarre c'est qu'on dirait qu'il va chercher un id hors de ceux qui existe (d'où le has no properties ... je pense) alors qu'avant le principe était le même et ça fonctionnait !


A vu de nez comme ça je dirais que tu aurrais interêt a faire un getElementsByTagName plutot

Reply

Marsh Posté le 03-01-2007 à 11:16:20    

ok ben c bon avec le coup du node ^^
tu me sauves la vie là ... si t'étais plus près je t'embrasserais ... euh bon restons correct, une bonne poignée de mains suffira je pense ! :P
merci mille fois ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed