Erreur dans programme

Bonjour,
Je ne comprend vraiment pas. Voici mon code (pas très long don't worry). La question que je me pose est à la fin de celui-ci.

<!DOCTYPE html>
<html>
    <head>
        <title>Page Title</title>
        
        <style>
        
table {
   background-color: blue;
}

td {
   width: 50px;
   height: 50px;
   border: 5px solid blue;
   border-radius: 100%;
   background-color: white;
}

        </style>
        
    </head>
    <body>
        
        <table>
            <tr>
                <td onClick="testt(0)"></td>
                <td onClick="testt(1)"></td>
                <td onClick="testt(2)"></td>
            </tr>
            <tr>
                <td onClick="testt(3)"></td>
                <td onClick="testt(4)"></td>
                <td onClick="testt(5)"></td>
            </tr>
        </table>
        
    <script>
        
tour = -1;
function testt(i) {    
    td = document.getElementsByTagName("td")[i];
    if (td.style.backgroundColor=="white") {
        tour++;
        if (tour%2==0) {
           //si pair 
           td.style.backgroundColor = "red";
        } else {
           //si impair 
           td.style.backgroundColor = "yellow";
        }
    } else {
       alert("Pourquoi je m'affiche toujours ?");
    }
}
        
    </script>
        
    </body>
</html>


Merci bien.

1 réponse

  1. Modérateur
    Bonjour,

    Parce qu'aucun backgroundcolor n'a été défini...

    Essaye ça :
     if (td.style.backgroundColor=="white" || td.style.backgroundColor== "") {
    

    1. Mais il est défini dzns le css, ça suffit pas?
    2. Modérateur
      @iamtheonebizarrement .. en testant ton code ... en examinant l'élément via les outils de debug du navigateur .. il est "vide"
    3. Ah bah un bug javascript peut-être :p sinon merci, j'ai test pour "" du coup mais pas pour "white" en plus ça sert à rien.
    4. @jordane45Il me semble que le code défini en css ne peux pas être lu, seulement celui dans l'attribut style le peut, pour lire le css il faut lire la propriété dans la/les feuille(s) de style(s) via document.styleSheets[x], non ?