Changer la couleur d'une td en javascript

Fermé
arkangedevil - 28 sept. 2008 à 23:30
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 - 29 sept. 2008 à 19:47
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 dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
28 sept. 2008 à 23:37
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
28 sept. 2008 à 23:54
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 dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
28 sept. 2008 à 23:55
après je ne peux rien faire sans le reste du code...
0
arkangedevil
28 sept. 2008 à 23:58
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 dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
29 sept. 2008 à 00:06
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
29 sept. 2008 à 00:14
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 dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
29 sept. 2008 à 00:38
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
29 sept. 2008 à 00:58
ça me marque ça

[object HTMLTableCellElement]
0
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
29 sept. 2008 à 01:13
il faut tester par étape

si tu rajoute .style ça te marque quoi?
0
arkangedevil
29 sept. 2008 à 18:54
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 dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
29 sept. 2008 à 19:47
ah?

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