IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Style d'une cellule ajoutée dans un tableau


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut Style d'une cellule ajoutée dans un tableau
    Bonjour,
    Voici le problème: au clic d'un bouton j'ajoute une ligne à un tableau de la page html, puis j'ajoute chacune des 16 cellules (puisque le tableau contient 16 colonne au départ). Ceci se fait en appelant la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    function ajout_ligne(){
    var newRow = document.getElementById('table').insertRow(-1);
    		var j = 0;
    		for(j=0;j<16;j++){
    			var newCell = newRow.insertCell(j);
    			switch(j){
    				case (0):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (1):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (2):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (3):var cellule = '<td bgcolor="#000000">&nbsp;</td>';
    				break;
    				case (4):var cellule = '<td>e&nbsp;</td>';
    				break;
    				case (5):var cellule = '<td>f&nbsp;</td>';
    				break;
    				case (6):var cellule = '<td>g&nbsp;</td>';
    				break;
    				case (7):var cellule = '<td>h&nbsp;</td>';
    				break;
    				case (8):var cellule = '<td>i&nbsp;</td>';
    				break;
    				case (9):var cellule = '<td>j&nbsp;</td>';
    				break;
    				case (10):var cellule = '<td>k&nbsp;</td>';
    				break;
    				case (11):var cellule = '<td>l&nbsp;</td>';
    				break;
    				case (12):var cellule = '<td>m&nbsp;</td>';
    				break;
    				case (13):var cellule = '<td>n&nbsp;</td>';
    				break;
    				case (14):var cellule = '<td>o&nbsp;</td>';
    				break;
    				case (15):var cellule = '<td>p&nbsp;</td>';
    				break;
    			}
    			newCell.innerHTML = cellule;
     
    		}
    }
    Comme vous pouvez le voir dans le case (3) j'ajoute une cellule dont le fond doit être coloré en noir. Ceci fonctionne sous firefox mais pas sous IE. Or c'est plutot le contraire qui m'arrangerait à défaut que cela fonctionne sur les 2 navigateurs.
    Comment faire à votre avis pour que ça fonctionne sous IE? Il y a-t-il une erreur quelque part?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case (3):var cellule = '<td>&nbsp;</td>';cellule.style.background="#000000";
    				break;
    Cela devrait fonctionner, en tout cas ça fonctionne chez moi

    Ou alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case (3):var cellule = '<td id="MonId">&nbsp;</td>';document.getElementById('MonId').style.background="#000000";
    				break;

  3. #3
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Tu utilises quelle version d'IE? 6? parce que chez moi sur IE 7 ça ne marche pas...A moins qu'il y ait d'autre bout de code chez moi qui perturbe cette fonction...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par nicoaix Voir le message
    Tu utilises quelle version d'IE? 6? parce que chez moi sur IE 7 ça ne marche pas...A moins qu'il y ait d'autre bout de code chez moi qui perturbe cette fonction...

    C'est surtout qu'appliquer un style à une variable de type string ...

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    J'avoue que j'ai toujours écrit ca comme cela dans mes programmes, mais je ne sais pas si ça ne marche pas que seulement grâce à une manière spéciale de déclarer mes variables...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Citation Envoyé par E.Bzz Voir le message

    C'est surtout qu'appliquer un style à une variable de type string ...

    A+
    Bon d'accord, j'arrete d'essayer d'aider les gens J'écrit n'importe quoi sans faire attention, j'ai vu le <td> j'ai pas fait attention au reste.

  7. #7
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Ok, mais alors comment faire pour ajouter une cellule avec un fond noir?

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par nicoaix Voir le message
    Ok, mais alors comment faire pour ajouter une cellule avec un fond noir?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var cellule = '<td style="background-color:#000000;">&nbsp;</td>';
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var cellule = '<td id="un_id_unique">&nbsp;</td>';
    ....
    ....
    document.getElementById('un_id_unique').style.backgroundColor="#000000";
    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    En fait, tu peux pas appliquer le style sur ta variable newCell?

  10. #10
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Ca fonctionne bien sous mozilla mais sous IE 7 ça ne fait rien (ça ne colore pas la cellule voulu en noir). Voici le code complet de la page que je teste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <script language="javascript" type="text/javascript">
    function ajout(){
    var newRow = document.getElementById('table').insertRow(-1);
    		var j = 0;
    		for(j=0;j<16;j++){
    			var newCell = newRow.insertCell(j);
    			switch(j){
    				case (0):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (1):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (2):var cellule = '<td>&nbsp;</td>';
    				break;
    				case (3):var cellule = '<td style="background-color:#000000;">s&nbsp;</td>'; 
    				break;
    				case (4):var cellule = '<td>e&nbsp;</td>';
    				break;
    				case (5):var cellule = '<td>f&nbsp;</td>';
    				break;
    				case (6):var cellule = '<td>g&nbsp;</td>';
    				break;
    				case (7):var cellule = '<td>h&nbsp;</td>';
    				break;
    				case (8):var cellule = '<td>i&nbsp;</td>';
    				break;
    				case (9):var cellule = '<td>j&nbsp;</td>';
    				break;
    				case (10):var cellule = '<td>k&nbsp;</td>';
    				break;
    				case (11):var cellule = '<td>l&nbsp;</td>';
    				break;
    				case (12):var cellule = '<td>m&nbsp;</td>';
    				break;
    				case (13):var cellule = '<td>n&nbsp;</td>';
    				break;
    				case (14):var cellule = '<td>o&nbsp;</td>';
    				break;
    				case (15):var cellule = '<td>p&nbsp;</td>';
    				break;
    			}
    			newCell.innerHTML = cellule;
    		}
    }
     
     
    </script>
    </head>
     
    <body>
    <table width="100%" border="0" id="table">
      <tr>
        <td><label>
          <input type="submit" name="Submit" value="Envoyer"  onclick="ajout();"/>
        </label></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Tu as essayé la 2° solution (avec document.getElementById() ) ?
    Elle est plus "propre" (mais tu devras gérer un compteur des cellules ajoutées pour que l'ID reste unique) ...

    A+

  12. #12
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Désolé mais aucune des 2 ne fonctionne sous IE (6 et 7)...mais pas de problème sous firefox (testé avec la 1ere solution).

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par nicoaix Voir le message
    Désolé mais aucune des 2 ne fonctionne sous IE (6 et 7)...mais pas de problème sous firefox (testé avec la 1ere solution).
    Ah si : la 2° solution (sous réserve de l'intégrer correctement) fonctionnera sur tous les nav ...

    A+

  14. #14
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    J'ai trouvé...En fait j'ai modifié la ligne du case(3) par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case (3):var cellule = '<td>s&nbsp;</td>'; newCell.style.backgroundColor = '#000000';
    En fait il fallait appliquer le style à l'objet 'newCell' et non à la variable 'cellule' qui est son contenu (même si son contenu contient des balises...

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par tusssss Voir le message
    En fait, tu peux pas appliquer le style sur ta variable newCell?
    Citation Envoyé par nicoaix Voir le message
    J'ai trouvé...En fait j'ai modifié la ligne du case(3) par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case (3):var cellule = '<td>s&nbsp;</td>'; newCell.style.backgroundColor = '#000000';
    En fait il fallait appliquer le style à l'objet 'newCell' et non à la variable 'cellule' qui est son contenu (même si son contenu contient des balises...

  16. #16
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Désolé j'avais pas vu...mea culpa

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/06/2007, 09h51
  2. Réponses: 2
    Dernier message: 16/06/2007, 19h06
  3. Réponses: 2
    Dernier message: 21/05/2007, 18h55
  4. Réponses: 2
    Dernier message: 22/04/2007, 21h57
  5. Table : rendre une cellule éditable dans un tableau
    Par mollig dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 15/08/2006, 00h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo