Changer la couleur d'une td en javascript

arkangedevil -  
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

bonjour, j'ai un tableau de case (td) avec un bgcolor red, lorsque je fais appel à la fonction suivante la case devient bleu... j'aimerais qu'elle passe au vert mais elle n'entre pas dans la condition et je ne comprends pas pourquoi, si qqn pouvait m'aide merci d'avant..

function ActionCase(i){

if(document.getElementById("td"+i).style.bgColor=='red'){
document.getElementById("td"+i).setAttribute("bgColor",'green');
}
else {
document.getElementById("td"+i).setAttribute("bgColor",'blue');
}
}
A voir également:

11 réponses

donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
bonjour,

fais un petit message pour voir la valeur:


function ActionCase(i){
alert("la valeur est "+document.getElementById("td"+i).style.bgColor);
if(document.getElementById("td"+i).style.bgColor=='red'){
document.getElementById("td"+i).setAttribute("bgColor",'green');
}
else {
document.getElementById("td"+i).setAttribute("bgColor",'blue');
}
}

c'est peut-être ça la valeur: #FF0000
0
arkangedevil
 
merci déjà ça me relève une erreur car il me dit que la valeur n'est pas défini ... j'ai rajouté un cas pour quand la valeur est pas défini afin de la mettre à black

else {
document.getElementById("td"+i).setAttribute("bgColor",'black');

}

mais même quand je reviens dessus il continu de dire que la valeur n'est pas défini ..
0
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
après je ne peux rien faire sans le reste du code...
0
arkangedevil
 
si ça peut aider voilà la ligne qui va créer mes td

echo "<td onClick='ActionCase(".$this->cpt.");' bgColor='red' id='td".$this->cpt."'></td>";

cpt est une variable que j'incremente de 1 à chaque fois... l'affichage est bon ainsi que l'appel de la fonction.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
ok,

parcontre l'erreur concerne quelle valeur? si tu mets document.getElementById('td1') il dit que ça existe ou pas?

d'habitude je mets: document.getElementById('td1').style['bgColor'] mais je sais qu'il y a plusieurs manières de faire (vive le javascript ^^)
0
arkangedevil
 
j'ai essayé avec td1 ... td2 ... td3 je tombe sur le même résultat, de même avec style['bgColor'].

A la place de la condition document.getElementById("td"+i).style.bgColor=='red' j'ai mis une condition avec une variable et tout marche bien, le changement de couleur etc... mais quand j'me retrouve avec plusieurs case à gérer ça pose problème les variables, pour ça que je voulais utiliser cette méthode du style.bgColor ... mais c'est pas un succès pour le moment !
0
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
oui je comprends l'erreur:

si tu fais ça:

alert(document.getElementById('td1'));

ça te mets NULL ou alors ça te met rien c'est ça?
0
arkangedevil
 
ça me marque ça

[object HTMLTableCellElement]
0
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
il faut tester par étape

si tu rajoute .style ça te marque quoi?
0
arkangedevil
 
merci pour l'aide en tout cas, je suis finalement tombé sur le problème, quand on fait setAttribute("bgColor", ce n'est pas la même chose que de dire style.backgroundColor=... donc style.bgColor valai rien. Il faut donc dans mon cas utiliser style.backgroundColor=couleur plutôt que setAttribute.
0
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
ah?

et est-ce que ça fonctionne avec tous les navigateurs?
0