Fonction Javascript pour cacher une colonne d'un tableau HTML : bug Firefox
Bonjour,
J'ai passé des heures à chercher la solution sur internet, et je n'y suis pas arrivé. :roll:
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:
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> |
Code:
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';
}
}
} |
J'ai inséré des 'alert' pour détecter les différences de comportement de IE et FF.
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