Changer la couleur d'une td en javascript

arkangedevil -  
donuts08 Messages postés 523 Statut Membre -
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');
}
}
Configuration: Windows XP
Firefox 3.0.3

11 réponses

  1. donuts08 Messages postés 523 Statut Membre 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
  2. 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
  3. donuts08 Messages postés 523 Statut Membre 39
     
    après je ne peux rien faire sans le reste du code...
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. donuts08 Messages postés 523 Statut Membre 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
  7. 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
  8. donuts08 Messages postés 523 Statut Membre 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
  9. arkangedevil
     
    ça me marque ça

    [object HTMLTableCellElement]
    0
  10. donuts08 Messages postés 523 Statut Membre 39
     
    il faut tester par étape

    si tu rajoute .style ça te marque quoi?
    0
  11. 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
  12. donuts08 Messages postés 523 Statut Membre 39
     
    ah?

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