Bonjour,
J'ai passé des heures à chercher la solution sur internet, et je n'y suis pas arrivé.
Je cherche à faire une fonction Javascript manipulant le DOM que j'appelle avec un évènement onClick, afin de masquer une colonne donnée (paramètre) d'un tableau HTML. J'y suis pratiquement arrivé, mais cela ne fonctionne que sur IE (pour une fois !) et pas sur Firefox. Ce qui me déroute c'est surtout l'insertion automatique de <tbody> par Firefox dans le code, ce qui me semble pose problème. J'ai alors inséré le <tbody> dans le code source.
Voici les codes HTML et Javascript.
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 <div class="tableV"> <table id="tableau"> <tbody> <tr> <th class="cfra"> français </th> <th class="ceng"> english </th> </tr> <tr> <td class="titre_cellule"> xxxx </td> <td class="titre_cellule"> xxxx </td> </tr> </tbody> </table> </div>J'ai inséré des 'alert' pour détecter les différences de comportement de IE et FF.
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 function afficherCacher(no_col) { var tableau = document.getElementById('tableau'); var tablebody = tableau.childNodes; alert('tablebody= '+ tablebody.length); var lignes = tablebody[0].childNodes; alert('lignes= '+lignes.length); for (var i=0;i<lignes.length;i++) { var cellules = lignes[i].childNodes; if ((cellules[no_col-1].style.display == 'inline') || (cellules[no_col-1].style.display == '')) { cellules[no_col-1].style.display = 'none'; } else { cellules[no_col-1].style.display = 'inline'; } } }
IE détecte 1 tbody et 5 lignes de tableau
FF détecte 3 tbody mais 0 lignes de tableau
Est-ce que quelqu'un saurait me dire ce qui ne va pas ?
Merci
Partager